31432023-02-20 11:18:45rennHálózatjavításcpp17Időlimit túllépés 4/50400ms6520 KiB
#include <bits/stdc++.h>
using namespace std;

#define GOTTAGOFAST cin.tie(0); ios::sync_with_stdio(0);

vector<int> szin;

stack<int> path;
stack<int> temp;
bool jo = false;

map<pair<int, int>, int> vonalak;

int maxc = 0;

void bejar(vector<vector<int>>& graf, int& n, int c)
{
    szin[c] = 1;
    path.push(c);
    for(int& x : graf[c])
    {
        if(szin[x] == 1) // kört találtam
        {
            while(path.top() != x)
            {
                temp.push(path.top());
                path.pop();
            }

            int t = x;

            pair<int, int> tt = {c, x};
            vonalak[tt] = vonalak[tt]+1;
            maxc = max(maxc, vonalak[tt]);
            
            while(!temp.empty())
            {
                tt = {t, temp.top()};
                vonalak[tt] = vonalak[tt]+1;
                maxc = max(maxc, vonalak[tt]);

                t = temp.top();
                path.push(temp.top());
                temp.pop();
            }
            jo = true;
            continue;
        }

        bejar(graf, n, x);
    }
    szin[c] = 0;
    path.pop();
}

int main()
{
    GOTTAGOFAST

    int n, k;
    cin >> n >> k;

    szin.resize(n+1);
    fill(szin.begin(), szin.end(), 0);

    vector<vector<int>> graf(n+1);
    int a, b;

    for (size_t i = 0; i < k; i++)
    {
        cin >> a >> b;
        graf[a].push_back(b);
    }

    for (size_t i = 1; i <= n; i++)
    {
        if(szin[i] > 0) continue;
        bejar(graf, n, i);
        if(jo) break;
    }
    
    auto it = vonalak.begin();

    stack<pair<int, int>> megoldasok;

    while(it != vonalak.end())
    {
        if(it->second == maxc)
            megoldasok.push(it->first);
        ++it;
    }

    cout << megoldasok.size() << "\n";
    while(!megoldasok.empty())
    {
        cout << megoldasok.top().first << " " << megoldasok.top().second << "\n";
        megoldasok.pop();
    }

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base4/50
1Elfogadva0/03ms1892 KiB
2Időlimit túllépés0/0400ms4064 KiB
3Elfogadva1/13ms2328 KiB
4Elfogadva1/13ms2676 KiB
5Időlimit túllépés0/1361ms2716 KiB
6Időlimit túllépés0/1375ms2152 KiB
7Időlimit túllépés0/1372ms2420 KiB
8Időlimit túllépés0/2363ms2728 KiB
9Időlimit túllépés0/2379ms2968 KiB
10Elfogadva2/2202ms3732 KiB
11Időlimit túllépés0/2361ms3188 KiB
12Időlimit túllépés0/2338ms2628 KiB
13Időlimit túllépés0/2367ms3888 KiB
14Időlimit túllépés0/2384ms3772 KiB
15Időlimit túllépés0/2375ms4580 KiB
16Időlimit túllépés0/2367ms4232 KiB
17Időlimit túllépés0/2379ms4812 KiB
18Időlimit túllépés0/2365ms5644 KiB
19Időlimit túllépés0/2368ms5484 KiB
20Időlimit túllépés0/2379ms5688 KiB
21Időlimit túllépés0/2363ms6088 KiB
22Időlimit túllépés0/2375ms5920 KiB
23Időlimit túllépés0/3400ms5924 KiB
24Időlimit túllépés0/4361ms5780 KiB
25Időlimit túllépés0/4344ms5864 KiB
26Időlimit túllépés0/4340ms6520 KiB