20分,剩下全部TLE,求解(cpp)
查看原帖
20分,剩下全部TLE,求解(cpp)
507366
文梓铭Johnson楼主2023/7/8 11:16
#include <bits/stdc++.h>
using namespace std;

int a[1005][1005];

int main()
{
	int n,m,maxh = 0;
	cin >> n >> m;
	for(int i = 1;i <= n;i++)
	{
		for(int j = 1;j <= m;j++)
		{
			cin >> a[i][j];
			maxh = max(maxh,a[i][j]);
		}
	}
	int tot = 0;
	while(maxh > 0)
	{
		for(int i = 1;i <= n;i++)
		{
			for(int j = 1;j <= m;j++)
			{
				if(a[i][j] > 0)
				{
					tot += 5;
					if(a[i][j] >= 2) tot--;
					if(a[i-1][j] >= 1) tot--;
					if(a[i+1][j] >= 1) tot--;
					if(a[i][j-1] >= 1) tot--;
					if(a[i][j+1] >= 1) tot--;
				}
			}			
		}
		for(int i = 1;i <= n;i++)
		{
			for(int j = 1;j <= m;j++)
			{
				a[i][j]--;
			}			
		}
		maxh--;
	}
	cout << tot;
	return 0;
}
2023/7/8 11:16
加载中...