39132023-03-05 12:21:36zsomborDinókcpp17Elfogadva 100/100370ms27300 KiB
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;

int n, m, t, a, b;
vector <vector <int>> g(2e5 + 1);
vector <bool> ent(2e5 + 1, false);
vector <bool> lef(2e5 + 1, false);
vector <int> tp;
vector <int> ans(2e5 + 1, 0);

void get_tp(int x) {
    if (ent[x] && !lef[x]) { cout << "NEM"; exit(0); }
    if (ent[x]) return;
    ent[x] = true;
    for (int i : g[x]) get_tp(i);
    lef[x] = true;
    tp.push_back(x);
}

int main()
{
    cin >> n >> m;
    for (int i = 1; i <= n; i++) g[i].push_back(i + n);
    for (int i = 0; i < m; i++) {
        cin >> t >> a >> b;
        if (t == 1) {
            g[a].push_back(b + n);
            g[b].push_back(a + n);
        }
        if (t == 2) g[a + n].push_back(b);
    }
    for (int i = 1; i <= n; i++) get_tp(i);
    reverse(tp.begin(), tp.end());
    for (int i = 0; i < 2 * n; i++) ans[tp[i]] = i + 1;
    cout << "IGEN\n";
    for (int i = 1; i <= n; i++) cout << ans[i] << " " << ans[i + n] << endl;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva8ms12720 KiB
2Elfogadva7ms12916 KiB
3Elfogadva10ms13712 KiB
subtask25/5
4Elfogadva328ms23160 KiB
5Elfogadva275ms22236 KiB
6Elfogadva268ms21736 KiB
subtask315/15
7Elfogadva8ms13444 KiB
8Elfogadva8ms13680 KiB
9Elfogadva8ms13788 KiB
10Elfogadva7ms13860 KiB
11Elfogadva7ms14076 KiB
12Elfogadva7ms14128 KiB
subtask410/10
13Elfogadva7ms14128 KiB
14Elfogadva7ms14272 KiB
15Elfogadva6ms14200 KiB
16Elfogadva7ms14196 KiB
17Elfogadva7ms14200 KiB
subtask535/35
18Elfogadva7ms14460 KiB
19Elfogadva8ms14524 KiB
20Elfogadva335ms27300 KiB
21Elfogadva344ms27244 KiB
22Elfogadva7ms14980 KiB
23Elfogadva8ms15056 KiB
24Elfogadva112ms25296 KiB
subtask635/35
25Elfogadva335ms25608 KiB
26Elfogadva296ms25656 KiB
27Elfogadva321ms25668 KiB
28Elfogadva326ms25608 KiB
29Elfogadva112ms24444 KiB
30Elfogadva298ms25968 KiB
31Elfogadva347ms25636 KiB
32Elfogadva119ms24424 KiB
33Elfogadva112ms25576 KiB
34Elfogadva370ms25936 KiB
35Elfogadva115ms23912 KiB