247292026-02-14 20:40:32999Rácsháló gráfcpp17Hibás válasz 20/507ms760 KiB
// Source: https://usaco.guide/general/io

#include <bits/stdc++.h>
using namespace std;

vector<vector<int>> v;

int main() {
    int n,m,k;cin>>n>>m>>k;
    v.resize(n*m+2);
    for(int i = 1;i<=n*m;i++){
        if(i%m>1)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));
    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);
        }
    }
    for(int xyz=0;xyz<k;xyz++){
        int U,V;cin>>U>>V;
        v[U].push_back(V);
        v[V].push_back(U);
        vector<int> dis1(n*m+2,-1);
        vector<int> dis2(n*m+2,-1);
        queue<int> q1,q2;
        dis1[U]=0;
        dis2[V]=0;
        q1.push(U);
        q2.push(V);
        while(!q1.empty()){
            int a=q1.front();
            q1.pop();
            for(int i : v[a]){
                if(dis1[i]==-1){
                    dis1[i]=dis1[a]+1;
                    q1.push(i);
                }
            }
        }
        while(!q2.empty()){
            int a=q2.front();
            q2.pop();
            for(int i : v[a]){
                if(dis2[i]==-1){
                    dis2[i]=dis2[a]+1;
                    q2.push(i);
                }
            }
        }
        int mx=0;
        for(int i = 1;i<=n*m;i++){
            for(int j = 1;j<=n*m;j++){
                tav[i][j]=min({tav[i][j],dis1[i]+1+dis2[j],dis1[j]+1+dis2[i]});
                mx=max(mx,tav[i][j]);
            }
        }
        cout<<mx<<endl;
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base20/50
1Elfogadva0/01ms316 KiB
2Hibás válasz0/07ms760 KiB
3Hibás válasz0/21ms316 KiB
4Elfogadva2/21ms336 KiB
5Elfogadva2/21ms316 KiB
6Elfogadva2/21ms316 KiB
7Hibás válasz0/21ms500 KiB
8Hibás válasz0/21ms508 KiB
9Hibás válasz0/21ms380 KiB
10Hibás válasz0/21ms316 KiB
11Elfogadva2/21ms316 KiB
12Hibás válasz0/23ms564 KiB
13Elfogadva3/34ms440 KiB
14Hibás válasz0/32ms316 KiB
15Hibás válasz0/34ms316 KiB
16Hibás válasz0/32ms316 KiB
17Elfogadva3/34ms316 KiB
18Hibás válasz0/33ms532 KiB
19Elfogadva3/31ms316 KiB
20Elfogadva3/31ms316 KiB
21Hibás válasz0/32ms316 KiB
22Hibás válasz0/37ms592 KiB