839 2022. 01. 20 11:41:42 kicsiboglar Ciklikus rácsháló gráf cpp11 Elfogadva 40/40 65ms 1956 KiB
#include <iostream>
#include <vector>
#include <deque>
#define ll long long 

using namespace std;

struct adat
{
    ll f, s, steps;
};
struct element
{
    bool lat;
    vector <ll> sz;
};
ll n, m, i, j, a, b, k, M;

int main()
{
    cin >> n >> m >> M;
    vector <element> x((n * m) + 1);
    for (i = 1; i <= n * m; ++i)
    {
        if (i > m) x[i].sz.push_back(i - m);
        else x[i].sz.push_back(i + (n - 1) * m);

        if (i <= (n * m) - m) x[i].sz.push_back(i + m);
        else x[i].sz.push_back(i - (n - 1) * m);

        if (i % m != 0) x[i].sz.push_back(i + 1);
        else x[i].sz.push_back(i - m + 1);

        if (i % m != 1) x[i].sz.push_back(i - 1);
        else x[i].sz.push_back(i + m - 1);

    }
    ll maxi = (n - 1) * (m - 1);

    for (k = 1; k <= M; ++k)
    {
        cin >> a >> b;
        x[a].sz.push_back(b);
        x[b].sz.push_back(a);
        maxi = -1;
        for (i = 1; i <= n * m; ++i)
        {
            for (j = 1; j <= n * m; ++j) x[j].lat = false;
            deque <pair<ll, ll> > v;
            v.push_back({ i,0 });
            pair<ll, ll> act;
            x[i].lat = true;
            while (!v.empty())
            {
                act = v[0];
                v.pop_front();
                for (auto e : x[act.first].sz)
                {
                    if (!x[e].lat)
                    {
                        x[e].lat = true;
                        if (act.second + 1 > maxi) maxi = act.second + 1;
                        v.push_back({ e,act.second + 1 });
                    }
                }
            }

        }
        cout << maxi << "\n";

    }
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 40/40
1 Elfogadva 0/0 2ms 1744 KiB
2 Elfogadva 0/0 54ms 1812 KiB
3 Elfogadva 2/2 1ms 1852 KiB
4 Elfogadva 2/2 1ms 1856 KiB
5 Elfogadva 2/2 2ms 1864 KiB
6 Elfogadva 2/2 2ms 1868 KiB
7 Elfogadva 2/2 3ms 1876 KiB
8 Elfogadva 2/2 3ms 1888 KiB
9 Elfogadva 2/2 3ms 1884 KiB
10 Elfogadva 2/2 2ms 1888 KiB
11 Elfogadva 2/2 3ms 1896 KiB
12 Elfogadva 2/2 13ms 1904 KiB
13 Elfogadva 2/2 26ms 1912 KiB
14 Elfogadva 2/2 4ms 1904 KiB
15 Elfogadva 2/2 25ms 1920 KiB
16 Elfogadva 2/2 4ms 1916 KiB
17 Elfogadva 2/2 23ms 1928 KiB
18 Elfogadva 2/2 8ms 1928 KiB
19 Elfogadva 2/2 1ms 1916 KiB
20 Elfogadva 2/2 2ms 1924 KiB
21 Elfogadva 2/2 9ms 1936 KiB
22 Elfogadva 2/2 65ms 1956 KiB