3514 2023. 02. 28 14:48:12 horvathabel Rácsháló gráf cpp17 Elfogadva 50/50 75ms 3964 KiB
#include <bits/stdc++.h>
using namespace std;
vector<int> g[201]; 
int bfs(int x){
	vector<bool> seen;
	seen.resize(201, 0);
	int tav[201];
	int mx=0;
	tav[x]=0;
	queue<int> q;
	q.push(x);
	while (!q.empty()){
		int v=q.front();
		q.pop();
		seen[v]=true;
		for (int x:g[v]){
			if (!seen[x]){
				tav[x]=tav[v]+1; 
				seen[x]=true;
				mx=max(mx,tav[x]);
				q.push(x);
			}
		}


	}
	return (mx); 
}
int main() {
	int n, m, k;
	cin>>n>>m>>k;
	for (int i=1;i<=n*m;i++){
		if ((i%m==0 or i%m-1>0)  && i%m!=1){
			 g[i].push_back(i-1);
		}
		if (i%m+1<=m && i%m!=0){
			g[i].push_back(i+1);
		}
		if (i-m>0){
		 g[i].push_back(i-m);
		} 
		if (i+m<=n*m){
			g[i].push_back(i+m);
		
		}
		

		

	}
	for (int i=0; i<k;i++){
		int x,y;
		cin>>x>>y; 
		g[x].push_back(y);
		g[y].push_back(x);
		int ans=0; 
		for (int i=1; i<=n*m;i++){
			ans=max(ans, bfs(i));
		}
		cout<<ans<<endl; 
	}

}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 50/50
1 Elfogadva 0/0 3ms 1816 KiB
2 Elfogadva 0/0 75ms 1916 KiB
3 Elfogadva 2/2 3ms 2112 KiB
4 Elfogadva 2/2 3ms 2324 KiB
5 Elfogadva 2/2 3ms 2540 KiB
6 Elfogadva 2/2 3ms 2608 KiB
7 Elfogadva 2/2 6ms 2620 KiB
8 Elfogadva 2/2 6ms 2740 KiB
9 Elfogadva 2/2 6ms 3084 KiB
10 Elfogadva 2/2 4ms 3172 KiB
11 Elfogadva 2/2 6ms 3388 KiB
12 Elfogadva 2/2 14ms 3400 KiB
13 Elfogadva 3/3 34ms 3400 KiB
14 Elfogadva 3/3 7ms 3396 KiB
15 Elfogadva 3/3 35ms 3520 KiB
16 Elfogadva 3/3 6ms 3500 KiB
17 Elfogadva 3/3 30ms 3528 KiB
18 Elfogadva 3/3 13ms 3740 KiB
19 Elfogadva 3/3 3ms 3816 KiB
20 Elfogadva 3/3 3ms 3820 KiB
21 Elfogadva 3/3 14ms 3824 KiB
22 Elfogadva 3/3 75ms 3964 KiB