代码如下
#include<bits/stdc++.h>
using namespace std;
int a[22][22];
int m,n,k;
int maxn,maxi,maxj,recordi,recordj;
int ans=0;
int check(int ri,int rj,int mi,int mj)
{
int sum=0;
if(ri>mi) sum+=ri-mi;
else sum+=mi-ri;
if(rj>mj) sum+=rj-mj;
else sum+=mj-rj;
return sum;
}
int main()
{
cin>>m>>n>>k;
for(int i=1;i<=m;i++) for(int j=1;j<=n;j++)
{
cin>>a[i][j];
if(a[i][j]>maxn)
{
maxn=a[i][j];
maxi=i;
maxj=j;
recordj=j;
}
}
int flag=1;
while(flag)
{
for(int i=1;i<=m;i++) for(int j=1;j<=n;j++) if(a[i][j]>maxn)
{
maxn=a[i][j];
maxi=i;
maxj=j;
}
if(check(recordi,recordj,maxi,maxj)+recordj<=k)
{
k-=check(recordi,recordj,maxi,maxj);
ans+=a[maxi][maxj];
a[maxi][maxj]=0;
recordi=maxi;
recordj=maxj;
}
else flag=0;
}
cout<<ans;
return 0;
}