判断题

请阅读以下代码和输入,写出程序的输出结果。 代码: #incl...

发布于 2022-03-03 17:00:17

请阅读以下代码和输入,写出程序的输出结果。
代码:
#include<iostream>
#include<string>
using namespace std

const int MAX_SIZE = 1000
int n, m, k
int a[MAX_SIZE][MAX_SIZE]
int sum

void dfs(int  x,  int  y) {
	++sum
	a[x][y] = 1
	if ((x > 1) && (a[x-1][y] == 0)) dfs(x - 1, y)
	if ((y > 1) && (a[x][y-1] == 0)) dfs(x, y - 1)
	if ((x < n) && (a[x+1][y] == 0)) dfs(x + 1, y)
	if ((y < m) && (a[x][y+1] == 0)) dfs(x, y + 1)
}


int main( ) {
	memset(a, 0, sizeof(a))
	cin >> n >> m >> k
	for(int i = 1 i <= k ++i) {
		int x, y
		cin >> x >> y
		a[x][y] = 1
	}
	int ans = 0, ansp = 0
	for (int i = 1 i <= n ++i)
		for (int j = 1 j <= m ++j)
			if (a[i][j] == 0) {
				++ansp
				sum = 0
				dfs(i, j)
				if (ans < sum) ans = sum
			}
	cout << ans << " " << ansp << endl
	return  0
}

输入:

10 10 10

4 1

5 2

6 3

7 2

8 1

1 7

2 7

3 8

4 9

5 10

输出:()
关注者
0
被浏览
35