1347 2022. 05. 21 18:10:10 nkdorka1212 Rácsháló gráf cpp11 Elfogadva 50/50 18ms 2204 KiB
#include <bits/stdc++.h>

using namespace std;
#pragma GCC target ("avx2")
#pragma GCC optimization ("O3")
#pragma GCC optimization ("unroll-loops")

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int n,m,k;
    cin>>n>>m>>k;
    vector<vector<int>>matrix(n*m+1,vector<int>(n*m+1,INT_MAX/2));
    for(int i=1;i<=n*m;i++)
    {
        if(i%m!=0)
        {
            matrix[i][i+1]=1;
            matrix[i+1][i]=1;
        }
        if(i<=(n-1)*m)
        {
            matrix[i][i+m]=1;
            matrix[i+m][i]=1;
        }
    }
    for(int e=1;e<=n*m;e++)
    {
        for(int i=1;i<=n*m;i++)
        {
            for(int j=1;j<=n*m;j++)
            {
                matrix[i][j]=min(matrix[i][j],matrix[i][e]+matrix[e][j]);
            }
        }
    }
    for(int i=1;i<=n*m;i++)
    {
        matrix[i][i]=0;
    }
    while(k--)
    {
        int a,b;
        cin>>a>>b;
        int maxi=0;
        matrix[a][b]=1;
        matrix[b][a]=1;
        for(int i=1;i<=n*m;i++)
        {
            for(int j=1;j<=n*m;j++)
            {
                if(j>i)
                {
                    int road1=matrix[i][a]+matrix[a][b]+matrix[b][j];
                    int road2=matrix[i][b]+matrix[b][a]+matrix[a][j];
                    road1=min(road1,road2);
                    matrix[i][j]=min(road1,matrix[i][j]);
                    matrix[j][i]=matrix[i][j];
                    maxi=max(maxi,matrix[i][j]);
                }

            }
        }
        cout<<maxi<<'\n';
    }

    return 0;
}


/*
    for(int i=1;i<=n*m;i++)
    {
        for(int j=1;j<=n*m;j++)
        {
            cout<<matrix[i][j]<<" ";
        }
        cout<<endl;
    }
*/
Részfeladat Összpont Teszt Verdikt Idő Memória
base 50/50
1 Elfogadva 0/0 2ms 1820 KiB
2 Elfogadva 0/0 18ms 2156 KiB
3 Elfogadva 2/2 1ms 1868 KiB
4 Elfogadva 2/2 1ms 1864 KiB
5 Elfogadva 2/2 1ms 1872 KiB
6 Elfogadva 2/2 1ms 1876 KiB
7 Elfogadva 2/2 3ms 1920 KiB
8 Elfogadva 2/2 3ms 1924 KiB
9 Elfogadva 2/2 3ms 1928 KiB
10 Elfogadva 2/2 2ms 1904 KiB
11 Elfogadva 2/2 3ms 1940 KiB
12 Elfogadva 2/2 14ms 2164 KiB
13 Elfogadva 3/3 8ms 1992 KiB
14 Elfogadva 3/3 3ms 1952 KiB
15 Elfogadva 3/3 9ms 2004 KiB
16 Elfogadva 3/3 3ms 1964 KiB
17 Elfogadva 3/3 8ms 1992 KiB
18 Elfogadva 3/3 3ms 1944 KiB
19 Elfogadva 3/3 1ms 1924 KiB
20 Elfogadva 3/3 1ms 1932 KiB
21 Elfogadva 3/3 3ms 1964 KiB
22 Elfogadva 3/3 17ms 2204 KiB