沧海一声喵 2018-02-26 19:17:49
点我顶贴
收藏
删除
#include <cstdio>
#include <algorithm>
using namespace std;
typedef struct node{
int i,j,num;
}node;
int cmp(const node &s,const node &t){
return s.num>t.num;}
int main(){
int i,j,m,n,K,s,x,i0,j0;node v[401];
int d,num,k;
scanf("%d%d%d",&m,&n,&K);
for(s=0,i=1;i<=m;i++)
for(j=1;j<=n;j++){
scanf("%d",&x);
if(x){
s++;v[s].i=i;v[s].j=j;v[s].num=x;}}
sort(v+1,v+s+1,cmp);
num=0;k=0;i0=0;j0=v[1].j;
for(i=1;i<=s;i++){
d=abs(v[i].i-i0)+abs(v[i].j-j0)+v[i].i+1;
if(d+k<=K){
num+=v[i].num;
k=k+(d-v[i].i);
i0=v[i].i;j0=v[i].j;}
else break;}
printf("%d",num);
return 0;}