80分求助,#4#5WA
查看原帖
80分求助,#4#5WA
319478
zhibuba楼主2020/5/20 13:56
#include <stdio.h>
#include <stdbool.h>

bool map[100][100];
int R, C, K;

int count_1(int _i, int _j)
{
	int t = 0;
	for (int j = _j; map[_i][j] && j < C; j++)
		t++;
	return t;
}

int count_2(int _i, int _j)
{
	int t = 0;
	for (int i = _i; map[i][_j] && i < R; i++)
		t++;
	return t;
}

int main(void)
{
	scanf("%d %d %d", &R, &C, &K);
	getchar();
	char c;
	for (int i = 0; i < R; i++)
	{
		for (int j = 0; j < C; j++)
		{
			if ((c = getchar()) == '.')
				map[i][j] = true;
		}
		getchar();
	}
	int ans = 0;
	for (int i = 0; i < R; i++)
	{
		for (int j = 0; j < C; j++)
		{
			if (map[i][j])
			{
				int t = count_1(i, j);
				int add = t - K + 1;
				ans += (add > 0 ? add : 0);
				j += t - 1;
			}
		}
	}
	for (int j = 0; j < C; j++)
	{
		for (int i = 0; i < R; i++)
		{
			if (map[i][j])
			{
				int t = count_2(i, j);
				int add = t - K + 1;
				ans += (add > 0 ? add : 0);
				i += t - 1;
			}
		}
	}
	printf("%d", ans);
	return 0;
}
2020/5/20 13:56
加载中...