#include <vector>
#include <iostream>
using ll = long long;
using namespace std;
struct Node
{
ll after;
ll before;
vector<ll> sames;
};
int main()
{
ll i, a, b, c, m, pm, wc, ni, si, N, M;
cin >> N >> M;
vector<vector<ll>> ss(M);
for(i = 0; i < M; i++)
{
cin >> a >> b >> c;
ss[i] = vector<ll> { a, b, c };
}
vector<Node> nodes(N + 1);
vector<pair<ll, ll>> ivs(N + 1);
vector<bool> w(N + 1);
for(i = 1; i <= N; i++)
{
nodes[i].after = nodes[i].before = -1;
w[i] = false;
}
for(i = 0; i < M; i++)
{
switch(ss[i][0])
{
case 1:
nodes[ss[i][1]].sames.push_back(ss[i][2]);
nodes[ss[i][2]].sames.push_back(ss[i][1]);
break;
case 2:
nodes[ss[i][1]].after = ss[i][2];
nodes[ss[i][2]].before = ss[i][1];
break;
default:
break;
}
}
for(i = 1; i <= N; i++)
{
if(nodes[i].before == -1)
break;
}
ni = i;
pm = wc = 0;
while(true)
{
w[ni] = true;
vector<ll> sames { ni };
si = 0;
while(si < sames.size())
{
for(i = 0; i < nodes[sames[si]].sames.size(); i++)
{
if(!w[nodes[sames[si]].sames[i]])
sames.push_back(nodes[sames[si]].sames[i]);
w[nodes[sames[si]].sames[i]] = true;
}
si++;
}
m += 2 * sames.size();
for(i = 0; i < sames.size(); i++)
ivs[sames[i]] = make_pair(i + pm + 1, m - i);
pm = m;
wc += sames.size();
if(nodes[ni].after == -1)
break;
else
ni = nodes[ni].after;
}
if(wc != N)
cout << "NEM" << endl;
else
{
cout << "IGEN" << endl;
for(i = 1; i <= N; i++)
cout << ivs[i].first << ' ' << ivs[i].second << endl;
}
return 0;
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
subtask1 | 0/0 | ||||||
1 | Részben helyes | 3ms | 1688 KiB | ||||
2 | Elfogadva | 3ms | 1848 KiB | ||||
3 | Elfogadva | 8ms | 3412 KiB | ||||
subtask2 | 0/5 | ||||||
4 | Hibás válasz | 129ms | 33248 KiB | ||||
5 | Hibás válasz | 64ms | 23996 KiB | ||||
6 | Hibás válasz | 35ms | 18736 KiB | ||||
subtask3 | 0/15 | ||||||
7 | Hibás válasz | 3ms | 2892 KiB | ||||
8 | Elfogadva | 3ms | 3096 KiB | ||||
9 | Hibás válasz | 2ms | 3212 KiB | ||||
10 | Részben helyes | 3ms | 3332 KiB | ||||
11 | Részben helyes | 3ms | 3444 KiB | ||||
12 | Hibás válasz | 2ms | 3536 KiB | ||||
subtask4 | 0/10 | ||||||
13 | Hibás válasz | 3ms | 3660 KiB | ||||
14 | Részben helyes | 2ms | 3744 KiB | ||||
15 | Elfogadva | 3ms | 3988 KiB | ||||
16 | Elfogadva | 2ms | 4072 KiB | ||||
17 | Hibás válasz | 2ms | 4072 KiB | ||||
subtask5 | 0/35 | ||||||
18 | Hibás válasz | 2ms | 4076 KiB | ||||
19 | Hibás válasz | 3ms | 4416 KiB | ||||
20 | Hibás válasz | 101ms | 25892 KiB | ||||
21 | Hibás válasz | 101ms | 25828 KiB | ||||
22 | Hibás válasz | 3ms | 4196 KiB | ||||
23 | Elfogadva | 3ms | 4280 KiB | ||||
24 | Elfogadva | 101ms | 25948 KiB | ||||
subtask6 | 0/35 | ||||||
25 | Hibás válasz | 123ms | 32188 KiB | ||||
26 | Hibás válasz | 118ms | 32436 KiB | ||||
27 | Hibás válasz | 119ms | 32228 KiB | ||||
28 | Hibás válasz | 119ms | 32272 KiB | ||||
29 | Elfogadva | 114ms | 30232 KiB | ||||
30 | Hibás válasz | 119ms | 31968 KiB | ||||
31 | Hibás válasz | 120ms | 32212 KiB | ||||
32 | Elfogadva | 112ms | 30232 KiB | ||||
33 | Elfogadva | 103ms | 28016 KiB | ||||
34 | Hibás válasz | 116ms | 33008 KiB | ||||
35 | Elfogadva | 136ms | 35240 KiB |