248662026-02-16 10:08:36abcdCiklikus rácsháló gráfcpp17Accepted 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';
    }
}
SubtaskSumTestVerdictTimeMemory
base40/40
1Accepted0/01ms316 KiB
2Accepted0/052ms564 KiB
3Accepted2/21ms316 KiB
4Accepted2/21ms508 KiB
5Accepted2/21ms316 KiB
6Accepted2/21ms316 KiB
7Accepted2/23ms316 KiB
8Accepted2/23ms316 KiB
9Accepted2/23ms316 KiB
10Accepted2/22ms332 KiB
11Accepted2/23ms316 KiB
12Accepted2/29ms564 KiB
13Accepted2/223ms544 KiB
14Accepted2/24ms388 KiB
15Accepted2/225ms528 KiB
16Accepted2/23ms316 KiB
17Accepted2/220ms536 KiB
18Accepted2/28ms508 KiB
19Accepted2/21ms316 KiB
20Accepted2/21ms316 KiB
21Accepted2/29ms508 KiB
22Accepted2/252ms564 KiB