0分求调
查看原帖
0分求调
525545
Gym081030楼主2022/9/24 21:42
#include<iostream>
using namespace std;
int n;
int ans;
bool a[101][101];
inline bool check(int x, int y)
{
	if (x < 1 || x > n || y < 1 || y > n || !a[x][y])
		return false;
	return true;
}
signed main()
{
	ios_base::sync_with_stdio(false);
	cin >> n;
	for (int i = 1; i <= n; i++)
		for (int j = 1; j <= n; j++)
			scanf("%1d", &a[i][j]);
	for (int i = 1; i <= n; i++)
		for (int j = 1; j <= n; j++)
		{
			if (a[i][j] && a[i][j + 1] && a[i + 1][j] && a[i + 1][j + 1])
			{
				ans++;
				for (int k = 1; k <= n; k++)
					if (check(i - k, j - k) && check(i - k, j + 1 + k) && check(i + 1 + k, j - k) && check(i + 1 + k, j + 1 + k))
						ans++;
					else
						break;
			}
			if (a[i][j])
			{
				for (int k = 1; k <= n; k++)
					if (check(i - k, j - k) && check(i - k, j + k) && check(i + k, j - k) && check(i + k, j + k))
						ans++;
					else
						break;
			}
		}
	cout << ans;
	return 0;
}
2022/9/24 21:42
加载中...