为什么错了
查看原帖
为什么错了
1013323
wangyutian578楼主2023/7/17 21:30
#include <bits/stdc++.h>
#define MX 20
using namespace std;
struct m
{
	int x,y;
	int num;
};
m a[MX * MX + 10];
bool cmp(m &p,m &q)
{
	return p.num > q.num;
}
int main()
{
	int m,n,k,cnt = 0,sum = 0,t = 0;
	cin >> m >> n >> k;
	int i,j;
	for(i = 1;i <= m;i++)
	{
		for(j = 1;j <= n;j++)
		{
			int xy;
			cin >> xy;
			if(xy > 0)
			{
				cnt++;
				a[cnt].num = xy;
				a[cnt].x = i;
				a[cnt].y = j;
			}
		}
    }
	sort(a + 1,a + cnt + 1,cmp);
	sum = sum + a[1].num;
	for(i = 1;i <= cnt;i++)
	{
		if(i == 1)
		{
			t = t + 1 + a[i].x;
			if(t + a[i].x <= k)
			{
				sum = sum + a[i].num;
			}
		}
		else
		{
			t = t + 1 + abs(a[i - 1].x - a[i].x) + abs(a[i - 1].y - a[i].y);
			if(t + a[i].x <= k)
			{
				sum = sum + a[i].num;
			}
			else
			{
				break;
			}
		}
	}
	cout << sum << endl;
	return 0;
}
2023/7/17 21:30
加载中...