P1086 花生采摘 样例2通不了
  • 板块题目总版
  • 楼主代码小明
  • 当前回复4
  • 已保存回复4
  • 发布时间2020/11/1 11:45
  • 上次更新2023/11/5 09:19:36
查看原帖
P1086 花生采摘 样例2通不了
323785
代码小明楼主2020/11/1 11:45
#include<bits/stdc++.h>
using namespace std;

const int N=30;

int n,m,time_peanut;
int get[N][N]; 
struct Point{
	int x;
	int y;
};
Point Max(){
	Point max={0,0};
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
			if(get[max.x][max.y]<get[i][j])
				max={i,j};
	return max;
}
int main(){
	cin>>n>>m>>time_peanut;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
			cin>>get[i][j];
	Point t=Max();
	if(time_peanut<t.x*2+1) cout<<"0";
	else{
		int res=get[t.x][t.y];
		get[t.x][t.y]=0;
		time_peanut-=t.x+1;
		while(true){
			Point r=Max();
			if(!get[r.x][r.y]) break;
			int d=abs(r.x-t.x)+abs(r.y-t.y);
			if(time_peanut<d+1+t.x) break;
			res+=get[r.x][r.y];
			get[r.x][r.y]=0;
			time_peanut-=d+1;
			t=r;
		}
		cout<<res<<"\n";
	}
	
	
	
	return 0;
}
//6 7 20
//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
//%%%%%%%%%%%%%%%%

2020/11/1 11:45
加载中...