231082026-01-16 12:17:19AblablablaCiklikus rácsháló gráfcpp17Time limit exceeded 38/40600ms756 KiB
#include <bits/stdc++.h>

using namespace std;

const int INF = 1e9 + 7;

int n, m, k, t;

int fel(int akt){
    return (akt - m + t) % t;
}

int le(int akt){
    return (akt + m) % t;
}

int balra(int akt){
    int sor = akt / m;
    if(akt + 1 <= (sor+1)*m - 1){
        return akt + 1;
    } else{
        return sor*m;
    }
}

int jobbra(int akt){
    int sor = akt / m;
    if(sor*m <= akt - 1){
        return akt - 1;
    } else{
        return (sor+1)*m - 1;
    }
}

int main()
{

    cin >> n >> m >> k;

    t = n*m;

    vector<vector<int>> tav(t, vector<int>(t, INF));

    for(int i = 0; i < t; i++){
        tav[i][fel(i)] = 1;
        tav[i][le(i)] = 1;
        tav[i][balra(i)] = 1;
        tav[i][jobbra(i)] = 1;
        tav[i][i] = 0;
    }


    for(int k = 0; k < t; k++){
        for(int i = 0; i < t; i++){
            for(int j = 0; j < t; j++){
                tav[i][j] = min(tav[i][j], tav[i][k] + tav[k][j]);
            }
        }
    }


    while(k--){
        int a, b;
        cin >> a >> b;
        a--; b--;

        tav[a][b] = min(tav[a][b], 1);
        tav[b][a] = min(tav[b][a], 1);

        int ans = 0;

        for(int k = 0; k < t; k++){
            for(int i = 0; i < t; i++){
                for(int j = 0; j < t; j++){
                    tav[i][j] = min(tav[i][j], tav[i][k] + tav[k][j]);
                }
            }
        }

        for(int i = 0; i < t; i++){
            for(int j = 0; j < t; j++){
                ans = max(ans, tav[i][j]);
            }
        }


        cout << ans << "\n";
    }
}
SubtaskSumTestVerdictTimeMemory
base38/40
1Accepted0/01ms316 KiB
2Time limit exceeded0/0589ms564 KiB
3Accepted2/21ms316 KiB
4Accepted2/21ms316 KiB
5Accepted2/22ms316 KiB
6Accepted2/21ms316 KiB
7Accepted2/223ms316 KiB
8Accepted2/223ms448 KiB
9Accepted2/223ms316 KiB
10Accepted2/26ms508 KiB
11Accepted2/223ms448 KiB
12Accepted2/2233ms556 KiB
13Accepted2/2284ms476 KiB
14Accepted2/228ms316 KiB
15Accepted2/2277ms500 KiB
16Accepted2/224ms316 KiB
17Accepted2/2208ms500 KiB
18Accepted2/245ms316 KiB
19Accepted2/22ms316 KiB
20Accepted2/23ms316 KiB
21Accepted2/261ms432 KiB
22Time limit exceeded0/2600ms756 KiB