#include <stdio.h> #include <stdlib.h> /* run this program using the console pauser or add your own getch, system("pause") or input loop */ typedef struct hua { int x; int y; int n; }FL; FL fl[400]; int a[20][20]; int jue (int a,int b,int c,int d) { int x,y; x=a-c; y=b-d; if(x<0) x=-x; if(y<0) y=-y; return x+y; } int main(int argc, char *argv[]) { int m,n,k,i,j,count=0,t,time,sum=0; scanf("%d %d %d",&m,&n,&k); for(i=1;i<=m;i++) for(j=1;j<=n;j++) { scanf("%d",&a[i][j]); if(a[i][j]!=0) { fl[count].n=a[i][j]; fl[count].x=i; fl[count].y=j; count++; } } for(i=0;i<=count-2;i++) for(j=i+1;j<=count-1;j++) if(fl[i].n<fl[j].n) { t=fl[i].n; fl[i].n=fl[j].n; fl[j].n=t; t=fl[i].x; fl[i].x=fl[j].x; fl[j].x=t; t=fl[i].y; fl[i].y=fl[j].y; fl[j].y=t; } time=fl[0].x+1; for(i=0;i<count;i++) { if(time+fl[i].x<=k) { time=time+1+jue(fl[i+1].x,fl[i+1].y,fl[i].x,fl[i].y); sum+=fl[i].n; } else break; } printf("%d",sum); return 0; } /************************************************************** Problem: 2245 User: admin Language: C Result: Accepted Time:52 ms Memory:1152 kb ****************************************************************/