222752026-01-14 19:45:05szjRácsháló gráfcpp17Accepted 50/5057ms508 KiB
#include <bits/stdc++.h>

using namespace std;

int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int m, n, k, i, mi=40001, a, b, ans;
    cin >> n >> m >> k;
    vector<vector<int>>vec(n*m);
    mi=4*m;
    for(i=0; i<n*m; i++)
    {
        if(i%m>0)vec[i].push_back(i-1);
        if((i+1)%m>0)vec[i].push_back(i+1);
        if(i+m<n*m)vec[i].push_back(i+m);
        if(i-m>=0)vec[i].push_back(i-m);
    }
    queue<int>q;
    for(i=0; i<k; i++)
    {
        cin >> a >> b;
        vec[a-1].push_back(b-1);
        vec[b-1].push_back(a-1);
        mi=0;
        for(int g=0; g<n*m; g++)
        {
            int dist[n*m]={};
            q.push(g);
            dist[g]=1;
            ans=1;
            while(!q.empty())
            {
                a=q.front();
                q.pop();
                for(auto j:vec[a])
                {
                    if(!dist[j])
                    {
                        dist[j]=dist[a]+1;
                        q.push(j);
                        ans=max(dist[j], ans);
                    }
                }
            }
            mi=max(ans, mi);
        }
        cout << mi-1 << endl;

    }
    return 0;
}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/01ms508 KiB
2Accepted0/057ms324 KiB
3Accepted2/21ms500 KiB
4Accepted2/21ms320 KiB
5Accepted2/21ms328 KiB
6Accepted2/21ms328 KiB
7Accepted2/24ms328 KiB
8Accepted2/23ms328 KiB
9Accepted2/23ms328 KiB
10Accepted2/22ms328 KiB
11Accepted2/23ms320 KiB
12Accepted2/28ms320 KiB
13Accepted3/326ms316 KiB
14Accepted3/34ms328 KiB
15Accepted3/327ms440 KiB
16Accepted3/34ms508 KiB
17Accepted3/323ms412 KiB
18Accepted3/38ms440 KiB
19Accepted3/31ms328 KiB
20Accepted3/31ms388 KiB
21Accepted3/310ms436 KiB
22Accepted3/357ms328 KiB