248662026-02-16 10:08:36abcdCiklikus rácsháló gráfcpp17Elfogadva 40/4052ms564 KiB
#include <bits/stdc++.h>
using namespace std;
using pii=pair<int,int>;

const int maxn=201;
vector<int> adj[maxn];
int d[maxn][maxn];

int main(){
    int n,m,k;cin>>n>>m>>k;
    for(int i=1;i<=n;i++){
        for(int j=(i-1)*m+1;j<i*m;j++){
            adj[j].push_back(j+1);
            adj[j+1].push_back(j);
        }
        adj[i*m].push_back((i-1)*m+1);
        adj[(i-1)*m+1].push_back(i*m);
    }
    for(int i=1;i<=m;i++){
        for(int j=i;j<(n-1)*m+i;j+=m){
            adj[j].push_back(j+m);
            adj[j+m].push_back(j);
        }
        adj[(n-1)*m+i].push_back(i);
        adj[i].push_back((n-1)*m+i);
    }
    while(k--){
        int a,b;cin>>a>>b;
        adj[a].push_back(b);
        adj[b].push_back(a);
        int mx=0;
        for(int i=1;i<=n*m;i++){
            for(int j=1;j<=n*m;j++)d[i][j]=0;
            queue<int> q;
            q.push(i);
            while(!q.empty()){
                int v=q.front();q.pop();
                for(int x:adj[v]){
                    if(!d[i][x]&&x!=i){
                        q.push(x);
                        d[i][x]=d[i][v]+1;
                    }
                }
            }
            for(int j=1;j<=n*m;j++){
                mx=max(mx,d[i][j]);
            }
        }
        cout<<mx<<'\n';
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base40/40
1Elfogadva0/01ms316 KiB
2Elfogadva0/052ms564 KiB
3Elfogadva2/21ms316 KiB
4Elfogadva2/21ms508 KiB
5Elfogadva2/21ms316 KiB
6Elfogadva2/21ms316 KiB
7Elfogadva2/23ms316 KiB
8Elfogadva2/23ms316 KiB
9Elfogadva2/23ms316 KiB
10Elfogadva2/22ms332 KiB
11Elfogadva2/23ms316 KiB
12Elfogadva2/29ms564 KiB
13Elfogadva2/223ms544 KiB
14Elfogadva2/24ms388 KiB
15Elfogadva2/225ms528 KiB
16Elfogadva2/23ms316 KiB
17Elfogadva2/220ms536 KiB
18Elfogadva2/28ms508 KiB
19Elfogadva2/21ms316 KiB
20Elfogadva2/21ms316 KiB
21Elfogadva2/29ms508 KiB
22Elfogadva2/252ms564 KiB