247472026-02-14 22:18:03999Rácsháló gráfcpp17Elfogadva 50/508ms596 KiB
// Source: https://usaco.guide/general/io

#include <bits/stdc++.h>
#pragma GCC target("avx2")
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")
using namespace std;

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int n,m,k;cin>>n>>m>>k;
    vector<vector<int>> v(n*m+2);
    for(int i = 1;i<=n*m;i++){
        if((i-1)%m>0)v[i].push_back(i-1);
        if((i-1)%m<m-1)v[i].push_back(i+1);
        if((i-1)/m>0)v[i].push_back(i-m);
        if((i-1)/m<n-1)v[i].push_back(i+m);
    }
    vector<vector<int>> tav(n*m+2,vector<int>(n*m+2,INT_MAX));
    for(int i = 1;i<=n*m;i++){
        for(int j = 1;j<=n*m;j++){
            tav[i][j]=abs((i-1)%m-(j-1)%m)+abs((i-1)/m-(j-1)/m);
            //cout<<tav[i][j]<<' ';
        }//cout<<endl;
    }
    for(int xyz=0;xyz<k;xyz++){
        int U,V;cin>>U>>V;
        tav[U][V]=tav[V][U]=1;
        for(int i = 1;i<=n*m;i++){
            tav[U][i]=min(tav[U][i],tav[V][i]+1);
            tav[i][U]=min(tav[i][U],tav[i][V]+1);
            tav[V][i]=min(tav[V][i],tav[U][i]+1);
            tav[i][V]=min(tav[i][V],tav[i][U]+1);
        }
        for(int i = 1;i<=n*m;i++){
            for(int j = 1;j<=n*m;j++){
                tav[i][j]=min({tav[i][j],tav[i][U]+tav[U][j],tav[i][V]+tav[V][j]});
            }
        }
        int mx=0;
        for(int i = 1;i<=n*m;i++){
            for(int j = i+1;j<=n*m;j++){
                //cout<<tav[i][j]<<' ';
                mx=max(mx,tav[i][j]);
            }//cout<<endl;
        }
        cout<<mx<<'\n';
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/01ms316 KiB
2Elfogadva0/08ms564 KiB
3Elfogadva2/21ms508 KiB
4Elfogadva2/21ms508 KiB
5Elfogadva2/21ms316 KiB
6Elfogadva2/21ms368 KiB
7Elfogadva2/21ms316 KiB
8Elfogadva2/21ms316 KiB
9Elfogadva2/21ms316 KiB
10Elfogadva2/21ms316 KiB
11Elfogadva2/21ms316 KiB
12Elfogadva2/23ms596 KiB
13Elfogadva3/34ms316 KiB
14Elfogadva3/31ms316 KiB
15Elfogadva3/34ms316 KiB
16Elfogadva3/31ms316 KiB
17Elfogadva3/34ms504 KiB
18Elfogadva3/32ms500 KiB
19Elfogadva3/32ms492 KiB
20Elfogadva3/31ms316 KiB
21Elfogadva3/32ms332 KiB
22Elfogadva3/38ms564 KiB