144632025-01-10 21:33:46PallanekPéterRácsháló gráfcpp17Elfogadva 50/5023ms760 KiB
#include <bits/stdc++.h>
using namespace std;

int main(){
    int inf=1e9+7;
    vector<vector<int> > d(201,vector<int>(201,inf));
    int n,m,k; cin >> n >> m >> k;
    for (int i=0;i<n*m;i++){
        for (int j=0;j<n*m;j++){
            if (i==j)d[i][j]=0;
            else{
                int kul=abs(j-i);
                int sori=i/m; int sorj=j/m;
                if (kul==m or (kul==1 and sori==sorj)){
                    d[i][j]=1;
                }
            }
        }
    }
    for (int z=0; z<n*m; ++z) {
        for (int i=0; i<n*m; ++i) {
            for (int j=0; j<n*m; ++j) {
                d[i][j] = min(d[i][j], d[i][z]+d[z][j]);
            }
        }
    }
    for (int i=0;i<k;i++){
        int x,y; cin >> x >> y;
        int mx=0; x--; y--;
        for (int i=0;i<n*m;i++){
            for (int j=0;j<n*m;j++){
                d[i][j]=min(d[i][j],min(d[i][x]+1+d[y][j],d[i][y]+1+d[j][x]));
                mx=max(mx,d[i][j]);
            }
        }
        cout << mx << "\n";
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/01ms564 KiB
2Elfogadva0/023ms568 KiB
3Elfogadva2/21ms756 KiB
4Elfogadva2/21ms760 KiB
5Elfogadva2/21ms564 KiB
6Elfogadva2/21ms564 KiB
7Elfogadva2/23ms316 KiB
8Elfogadva2/23ms564 KiB
9Elfogadva2/23ms568 KiB
10Elfogadva2/22ms564 KiB
11Elfogadva2/23ms564 KiB
12Elfogadva2/216ms564 KiB
13Elfogadva3/310ms560 KiB
14Elfogadva3/33ms564 KiB
15Elfogadva3/310ms564 KiB
16Elfogadva3/33ms564 KiB
17Elfogadva3/38ms560 KiB
18Elfogadva3/33ms568 KiB
19Elfogadva3/31ms380 KiB
20Elfogadva3/31ms564 KiB
21Elfogadva3/34ms500 KiB
22Elfogadva3/321ms564 KiB