#include <iostream> #include <algorithm> #include <cmath> using namespace std; const int N(409); struct plant { int r,c,w; }; plant data[N]; bool comp(const plant &x,const plant &y) { return x.w>y.w; } int main() { int m,n,k,ans(0); cin>>m>>n>>k; int w; for(int i=1;i<=m;i++) for(int j=1;j<=n;j++) { int no((i-1)*n+j); cin>>data[no].w; data[no].r=i; data[no].c=j; } sort(data+1,data+1+m*n,comp); int t(0);data[0].r=0;data[0].c=data[1].c;data[0].w=0; for(int i=1;i<=m*n;i++) { t+=abs(data[i].r-data[i-1].r)+abs(data[i].c-data[i-1].c)+1; if(t+data[i].r>k) break; ans+=data[i].w; } cout<<ans<<endl; return 0; } /************************************************************** Problem: 2245 User: admin Language: C++ Result: Accepted Time:49 ms Memory:2080 kb ****************************************************************/