5198 2023. 04. 21 22:11:08 ZsofiaKeresztely Dinók cpp14 Időlimit túllépés 35/100 601ms 32232 KiB
#include <bits/stdc++.h>
using namespace std;
vector<vector<int> > g(100001), g2(100001), comp(100001);
vector<int> ind(100001, 0), op(100001, 0), c(100001, 0);
vector<bool> inq(100001, 0);
int n, last = 1, cur = 1;

void dfs(int v){
    c[v] = cur;
    comp[cur].push_back(v);
    for (int x : g2[v]){
        if (!c[x]){
            dfs(x);
        }
    }
}

void bfs(){
    queue<int> q;
    for (int i=1; i<=n; i++){
        if (!ind[i]){
            q.push(i);
        }
    }
    while (!q.empty()){
        int v = q.front();
        q.pop();
        if (op[v]) continue;
        for (int x : comp[c[v]]){
            if (x == v) continue;
            if (!inq[x]){
                inq[v] = 1;
            }
        }
        if (!inq[v]){
            for (int x : comp[c[v]]){
                op[x] = last;
                for (int y : g[x]){
                    ind[y]--;
                    if (!ind[y]) q.push(y);
                }
            }
            last += 2;
        }
    }
}

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int m;
    cin >> n >> m;
    while (m--){
        int t, a, b;
        cin >> t >> a >> b;
        if (t == 2){
            g[a].push_back(b);
            ind[b]++;
        }
        else{
            g2[a].push_back(b);
            g2[b].push_back(a);
        }
    }
    for (int i=1; i<=n; i++){
        if (!c[i]){
            dfs(i);
            cur++;
        }
    }
    bfs();
    for (int i=1; i<=n; i++){
        if (!op[i]){
            cout << "NEM";
            return 0;
        }
    }
    cout << "IGEN";
    for (int i=1; i<=n; i++){
        cout << "\n" << op[i] << " " << op[i] + 1;
    }
}
Részfeladat Összpont Teszt Verdikt Idő Memória
subtask1 0/0
1 Elfogadva 10ms 17920 KiB
2 Elfogadva 8ms 18104 KiB
3 Elfogadva 10ms 18632 KiB
subtask2 0/5
4 Időlimit túllépés 601ms 14688 KiB
5 Időlimit túllépés 573ms 13980 KiB
6 Elfogadva 52ms 26924 KiB
subtask3 0/15
7 Elfogadva 9ms 18980 KiB
8 Elfogadva 9ms 19272 KiB
9 Elfogadva 9ms 19148 KiB
10 Hibás válasz 9ms 19404 KiB
11 Hibás válasz 9ms 19444 KiB
12 Elfogadva 9ms 19512 KiB
subtask4 0/10
13 Elfogadva 9ms 19700 KiB
14 Hibás válasz 8ms 19968 KiB
15 Elfogadva 8ms 19832 KiB
16 Elfogadva 8ms 20088 KiB
17 Hibás válasz 8ms 20288 KiB
subtask5 35/35
18 Elfogadva 9ms 20484 KiB
19 Elfogadva 10ms 20672 KiB
20 Elfogadva 85ms 31600 KiB
21 Elfogadva 85ms 31564 KiB
22 Elfogadva 9ms 20564 KiB
23 Elfogadva 9ms 21016 KiB
24 Elfogadva 67ms 31408 KiB
subtask6 0/35
25 Időlimit túllépés 556ms 17180 KiB
26 Időlimit túllépés 574ms 17380 KiB
27 Időlimit túllépés 561ms 17472 KiB
28 Időlimit túllépés 574ms 17332 KiB
29 Elfogadva 118ms 31464 KiB
30 Időlimit túllépés 538ms 17356 KiB
31 Időlimit túllépés 574ms 17260 KiB
32 Elfogadva 104ms 31672 KiB
33 Elfogadva 78ms 32232 KiB
34 Időlimit túllépés 569ms 17484 KiB
35 Időlimit túllépés 560ms 17612 KiB