花生采摘
Sample Input
6 7 21 0 0 0 0 0 0 0 0 0 0 0 13 0 0 0 0 0 0 0 0 7 0 15 0 0 0 0 0 0 0 0 9 0 0 0 0 0 0 0 0 0 0
Sample Output
37
#include<iostream>
using namespace std;
int f(int a)
{
return a>=0?a:-a;
}
int main()
{
intm,n,mx,my,time,sum=0,cx,cy;
int i,j,s[21][21];
cin>>m>>n>>time;
mx=my=1;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
{
cin>>s[i][j];
if(s[i][j]>s[mx][my])
mx=i,my=j;
}
cx=0,cy=my;
while(time>0)
{
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
if(s[i][j]>s[mx][my])
mx=i,my=j;
if(s[mx][my]==0)
break;
if(time>=(f(cx-mx)+f(cy-my))+mx+1)
{
time-=(f(cx-mx)+f(cy-my)+1);
cx=mx;
cy=my;
sum+=s[mx][my];
s[mx][my]=0;
}
else
break;
}
cout<<sum<<endl;
}