#include<bits/stdc++.h>
using namespace std;
const int MAXN=25;
int a[MAXN][MAXN];
int m,n,k;
pair<int,pair<int,int> > find(){
int maxn=-1;
pair<int,int> pos={-1,-1};
for(int i=1;i<=m;i++){
for(int j=0;j<=n;j++){
if(a[i][j]>maxn){
maxn=a[i][j];
pos={i,j};
}
}
}
return make_pair(maxn,pos);
}
int main(){
cin>>m>>n>>k;
for(int i=1;i<=m;i++){
for(int j=1;j<=n;j++){
cin>>a[i][j];
}
}
int sum=0;
int x0=0,y0=0;
while(k>0){
pair<int,pair<int,int> > result=find();
int maxn=result.first;
int maxi=result.second.first;
int maxj=result.second.second;
if(maxn<=0) break;
int time_to_reach=abs(x0-maxi)+abs(y0-maxj)+1;
if(time_to_reach>k) break;
k-=time_to_reach;
sum+=maxn;
a[maxi][maxj]=0;
x0=maxi;
y0=maxj;
}
cout<<sum;
return 0;
}
不知道为什么,这个代码40分,又感觉没什么问题,有大神能来看看问题吗
提交记录