7206 2024. 01. 03 14:22:08 horvathabel Ciklikus rácsháló gráf cpp17 Hibás válasz 38/40 81ms 4732 KiB
#include <bits/stdc++.h>
using namespace std;
vector<int> g[201];
int bfs(int x){
	vector<bool>seen; 
	seen.resize(201,false);
	int tav[201];
	queue<int> q;
	q.push(x);
	seen[x]=true;
	tav[x]=0;
	int ans=0; 
	while (!q.empty()){
		int v=q.front();

		q.pop();
		for (auto edge:g[v]){
			if (!seen[edge]){
				tav[edge]=tav[v]+1;
				ans=max(ans, tav[edge]);
				q.push(edge);
				seen[edge]=true; 
			}
		}
	}
	return ans; 


}
int main() {
	int n, m;
	cin>>n>>m;
	swap(n,m);
	for (int i=1; i<=m;i++){
		g[1+(i-1)*n].push_back(i*n);
		g[i*n].push_back(1+(i-1)*n);
	}
	for (int i=1; i<=n*m;i++){
			if ((i)%n!=1){
				g[i].push_back(i-1);
			}
			if ((i)%n!=0) g[i].push_back(i+1);
			if (i<(m-1)*n+1){
				g[i].push_back(i+n);
				g[i+n].push_back(i);
			}
			if (i<=n){
				g[i].push_back(i+(m-1)*n); 
				g[i+(m-1)*n].push_back(i); 
		}
	}
	int k;
	cin>>k;
	for (int u=0; u<k;u++){
		int a, b;
		cin>>a>>b;
		g[a].push_back(b);
		g[b].push_back(a);
		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 38/40
1 Elfogadva 0/0 3ms 1816 KiB
2 Elfogadva 0/0 81ms 2196 KiB
3 Hibás válasz 0/2 3ms 2236 KiB
4 Elfogadva 2/2 3ms 2372 KiB
5 Elfogadva 2/2 3ms 2588 KiB
6 Elfogadva 2/2 3ms 2924 KiB
7 Elfogadva 2/2 6ms 2928 KiB
8 Elfogadva 2/2 6ms 2940 KiB
9 Elfogadva 2/2 6ms 2940 KiB
10 Elfogadva 2/2 4ms 3136 KiB
11 Elfogadva 2/2 6ms 3352 KiB
12 Elfogadva 2/2 17ms 3576 KiB
13 Elfogadva 2/2 37ms 3664 KiB
14 Elfogadva 2/2 8ms 3792 KiB
15 Elfogadva 2/2 37ms 3936 KiB
16 Elfogadva 2/2 6ms 4156 KiB
17 Elfogadva 2/2 32ms 4244 KiB
18 Elfogadva 2/2 14ms 4732 KiB
19 Elfogadva 2/2 3ms 4576 KiB
20 Elfogadva 2/2 4ms 4480 KiB
21 Elfogadva 2/2 16ms 4548 KiB
22 Elfogadva 2/2 81ms 4564 KiB