52702023-04-25 06:22:59anonDinókcpp17Hibás válasz 0/100519ms91992 KiB
#include <vector>
#include <queue>
#include <unordered_set>
#include <iostream>

using ll = long long;
using namespace std;

int main()
{
    ll i, j, c, e, t, a, b, N, M;

    cin >> N >> M;

    vector<vector<ll>> ss(M);

    for(i = 0; i < M; i++)
    {
        cin >> t >> a >> b;
        ss[i] = vector<ll> { t, a, b };
    }

    vector<unordered_set<ll>> g(2 * N + 1);
    vector<ll> ine(2 * N + 1, 0);

    for(i = 0; i < M; i++)
    {
        switch(ss[i][0])
        {
            case 1:
                g[ss[i][1]].insert(ss[i][2] + N);
                ine[ss[i][2] + N]++;

                g[ss[i][2]].insert(ss[i][1] + N);
                ine[ss[i][1] + N]++;
            break;
            case 2:
                g[ss[i][1] + N].insert(ss[i][2]);
                ine[ss[i][2]]++;
            break;
            default:
            break;
        }
    }

    for(i = 1; i <= N; i++)
    {
        g[i].insert(i + N);
        ine[i + N]++;
    }

    c = 1;
    vector<ll> ans(2 * N + 1, 0);

    queue<ll> q;

    for(i = 1; i <= N; i++)
    {
        if(!ine[i])
            q.push(i);
    }

    while(q.size())
    {
        e = q.front();
        q.pop();

        ans[e] = c++;

        for(auto x : g[e])
        {
            if(!--ine[x])
                q.push(x);
        }
    }

    for(i = 1; i <= 2 * N; i++)
    {
        if(!ans[i])
        {
            cout << "NEM" << endl;
            return 0;
        }
    }

    cout << "IGEN" << endl;

    for(i = 1; i <= N; i++)
        cout << ans[i] << ' ' << ans[i + N] << endl;

    return 0;
}

RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1808 KiB
2Elfogadva3ms2060 KiB
3Elfogadva10ms6324 KiB
subtask20/5
4Hibás válasz277ms83448 KiB
5Elfogadva354ms72176 KiB
6Elfogadva280ms66372 KiB
subtask30/15
7Elfogadva3ms2724 KiB
8Elfogadva3ms2852 KiB
9Elfogadva3ms2936 KiB
10Hibás válasz3ms3064 KiB
11Hibás válasz3ms3144 KiB
12Elfogadva3ms3176 KiB
subtask40/10
13Hibás válasz3ms3264 KiB
14Hibás válasz3ms3252 KiB
15Elfogadva3ms3252 KiB
16Elfogadva3ms3384 KiB
17Hibás válasz3ms3600 KiB
subtask50/35
18Elfogadva3ms3728 KiB
19Hibás válasz3ms4380 KiB
20Hibás válasz223ms91580 KiB
21Hibás válasz228ms91992 KiB
22Elfogadva3ms3924 KiB
23Elfogadva4ms4704 KiB
24Elfogadva223ms91792 KiB
subtask60/35
25Hibás válasz275ms87984 KiB
26Hibás válasz230ms87884 KiB
27Hibás válasz279ms87972 KiB
28Hibás válasz228ms88096 KiB
29Elfogadva224ms90424 KiB
30Elfogadva409ms89440 KiB
31Időlimit túllépés519ms88660 KiB
32Elfogadva231ms90488 KiB
33Elfogadva206ms91920 KiB
34Elfogadva432ms89320 KiB
35Elfogadva316ms86576 KiB