133882025-01-07 18:38:21RicsiRácsháló gráfcpp17Hibás válasz 0/5024ms688 KiB
#include <iostream>
#include <vector>
using namespace std;

bool g[201][201];
int dis[201][201];

int main() {
	int n, m, k; cin >> n >> m >> k;
	for (int i = 1; i <= n; i++) {
		for (int j = 1; j <= m; j++) {
			if (i != 1) g[(i - 1) * m + j][(i - 2) * m + j] = true;
			if (i != n) g[(i - 1) * m + j][i * m + j] = true;
			if (j != 1)g[(i - 1) * m + j][(i - 1) * m + j - 1] = true;
			if(j!=m)g[(i - 1) * m + j][(i - 1) * m + j + 1] = true;
		}
	}
	for (int i = 1; i <= n*m; i++) {
		for (int j = 1; j <= n * m; j++) {
			if (g[i][j])dis[i][j] = 1;
			else dis[i][j] = 100000;
			if (i == j)dis[i][j] = 0;
		}
	}
	for (int x = 1; x <= n * m; x++) {
		for (int i = 1; i <= n * m; i++) {
			for (int j = 1; j <= n * m; j++) {
				dis[i][j] = min(dis[i][j], dis[i][x] + dis[x][j]);
			}
		}
	}
	for (int i = 1; i <= n * m; i++) {
		for (int j = 1; j <= n * m; j++) {
			cout << dis[i][j] << ' ';
		}
		cout << '\n';
	}
	while (k--) {
		int u, v; cin >> u >> v;
		for (int i = 1; i <= n * m; i++) {
			for (int j = 1; j <= n * m; j++) {
				dis[i][j] = min(dis[i][j], min(dis[i][u] + dis[v][j] + 1, dis[i][v] + dis[u][j] + 1));
				dis[j][i] = min(dis[i][j], min(dis[i][u] + dis[v][j] + 1, dis[i][v] + dis[u][j] + 1));
			}
		}
		int maxe = 0;
		for (int i = 1; i <= n * m; i++) {
			for (int j = 1; j <= n * m; j++) {
				if (i != j)maxe = max(maxe, dis[i][j]);
			}
		}
		cout << maxe << '\n';
	}
}

RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/50
1Hibás válasz0/01ms316 KiB
2Hibás válasz0/024ms596 KiB
3Hibás válasz0/21ms316 KiB
4Hibás válasz0/21ms316 KiB
5Hibás válasz0/21ms316 KiB
6Hibás válasz0/21ms316 KiB
7Hibás válasz0/24ms392 KiB
8Hibás válasz0/24ms316 KiB
9Hibás válasz0/24ms316 KiB
10Hibás válasz0/22ms316 KiB
11Hibás válasz0/24ms336 KiB
12Hibás válasz0/217ms688 KiB
13Hibás válasz0/312ms564 KiB
14Hibás válasz0/34ms352 KiB
15Hibás válasz0/310ms556 KiB
16Hibás válasz0/34ms316 KiB
17Hibás válasz0/38ms544 KiB
18Hibás válasz0/34ms316 KiB
19Hibás válasz0/31ms316 KiB
20Hibás válasz0/32ms532 KiB
21Hibás válasz0/34ms344 KiB
22Hibás válasz0/323ms600 KiB