#include <algorithm>
#include <iostream>
using namespace std;
int n,m,t,map[21][21],ans;
void dfs(int nowt,int x,int y)
{
  int maxx,maxy,max=0;
  for(int i=1; i<=n; i++)
    for(int j=1; j<=m; j++)
      if(map[i][j]>max)
      {
        max=map[i][j];
        maxx=i;
        maxy=j;
      }
  if(y==0) y=maxy;
  if(nowt<abs(x-maxx)+abs(y-maxy)+maxx+1||map[maxx][maxy]==0) return;
  else
  {
    ans+=map[maxx][maxy];
    map[maxx][maxy]=0;
    nowt-=abs(x-maxx)-abs(y-maxy)-1;
    dfs(nowt,maxx,maxy);
  }
}
int main()
{
  cin>>n>>m>>t;
  for (int i=1; i<=n; i++)
    for (int j=1; j<=m; j++) cin>>map[i][j];
  dfs(t,0,0);
  cout<<ans;
  return 0;
}

0 条评论

目前还没有评论...

信息

ID
160
时间
1000ms
内存
256MiB
难度
6
标签
(无)
递交数
220
已通过
76
上传者