#include<bits/stdc++.h>
using namespace std;
const int MAXN=22;
int G[MAXN][MAXN]={};
struct Node{
int tx,ty;
int data;
};
bool cmp(Node a,Node b){
return a.data>b.data;
}
int main()
{
freopen("in.txt","r",stdin);//freopen("out.txt","w",stdout);
int m,n,k;cin>>m>>n>>k;
vector<Node> ppp;
for(int i=1;i<=m;i++){
for(int j=1;j<=n;j++){
cin>>G[i][j];
if(G[i][j]!=0){
Node temp;
temp.tx=i;temp.ty=j;temp.data=G[i][j];
ppp.push_back(temp);
}
}
}
sort(ppp.begin(),ppp.end(),cmp);
int cnt=k;int num=0;
int lastx,lasty;
for(int i=0;i<ppp.size();i++){
if(i>0){
if(ppp[i].tx+abs(ppp[i].tx-lastx)+abs(ppp[i].ty-lasty)+1<=cnt){
cnt=cnt-(abs(ppp[i].tx-lastx)+abs(ppp[i].ty-lasty)+1);
num+=ppp[i].data;
lastx=ppp[i].tx;lasty=ppp[i].ty;
}else break;
}
if(i==0){
if(2*ppp[i].tx+1<=cnt){
cnt=cnt-ppp[i].tx-1;
num+=ppp[i].data;
lastx=ppp[i].tx;lasty=ppp[i].ty;
}else break;
}
}
cout<<num;
return 0;
}
题目略垃圾,容易歧义
592

被折叠的 条评论
为什么被折叠?



