60分求助
查看原帖
60分求助
907288
NOI_First_Prize楼主2024/8/7 22:16
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
int n , m , k;
int a[250][250];
struct mi{
	int x,y,shu,ti; 
}f[7000];
bool cmp(mi x , mi y )
{
	return x.shu > y.shu;
}
int main()
{
	int cnt = 0;
	scanf("%d%d%d",&n,&m,&k);
	for(int i = 1;i <= n;i++)
		for(int j = 1;j <= m;j++)
		{
			scanf("%d" , &a[i][j]);
			if(a[i][j] > 0) cnt ++ ,f[cnt].x=i , f[cnt].y=j , f[cnt].shu = a[i][j];
		} 
	sort(f+1,f+1+n , cmp);
	int u;
	int ans = 0;
	for(int i = 1;i <= cnt ;i++)
	{
		u = f[i].x;
		if(i == 1) f[i].ti = f[i].x + 1;
		else f[i].ti = f[i-1].ti + abs(f[i].x - f[i-1].x) + abs(f[i].y - f[i - 1].y) + 1;
		if(f[i].ti + u <=k)ans += f[i].shu;
	}
	cout << ans << endl;
	return 0;
} 
2024/8/7 22:16
加载中...