刚学C,一不小心就RE了
查看原帖
刚学C,一不小心就RE了
685261
XFboy楼主2024/4/22 16:49

这是一句没用的话。

#include <iostream>
using namespace std;

int a[1600][1600], b[100010];

int count(int x, int y, int cnt)
{
	if (a[x][y] < 1) return 0;
	int sum = 0;
	if (a[x][y] == 1)
	{
		a[x][y] = -1;
		sum++;
		cnt++;
		for (int i = -1; i < 2; i++)
			for (int j = -1; j < 2; j++)
				sum += count(x + i, y + j, cnt + 1);
	}
	return sum;
}

int main()
{
	int n, m, tmp, cnt = 0, maxi = -1, maxn = -1;
	cin >> n >> m;
	char c;
	for (int i = 0; i < n; i++)
		for (int j = 0; j < m; j++)
		{
			cin >> c;
			if (c == '*') a[i][j] = 1;
		}
	for (int i = 0; i < n; i++)
		for (int j = 0; j < m; j++)
			if (a[i][j] == 1)
			{
				tmp = count(i, j, 0);
				b[tmp]++;
				if (maxi < tmp)
					maxi = tmp;
			}
	for (int i = 1; i <= maxi; i++)
		if (b[i])
		{
			cnt++;
			if (b[maxn] * maxn < b[i] * i)
				maxn = i;
		}
	cout << cnt << ' ' << b[maxn] * maxn;
	return 0;
}

来个人帮帮忙呗

2024/4/22 16:49
加载中...