101612024-03-28 21:27:09111Dinókcpp17Elfogadva 100/100103ms52128 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long

signed main(){
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	int N,M;
	cin>>N>>M;
	vector<vector<int>>g(N*2);
	vector<int>c(N*2);
	for(int i=0;i<N;i++){
		g[i].push_back(N+i);
		c[N+i]++;
	}
	for(int i=0;i<M;i++){
		int o,a,b;
		cin>>o>>a>>b;
		a--,b--;
		if(o==1){
			g[a].push_back(N+b);
			c[N+b]++;
			g[b].push_back(N+a);
			c[N+a]++;
		}
		if(o==2){
			g[N+a].push_back(b);
			c[b]++;
		}
	}
	vector<int>v(N*2);
	int t=1;
	auto dfs=[&](auto self,int i)->void{
		for(int j:g[i]){
			if(v[j]){
				continue;
			}
			c[j]--;
			if(c[j]==0){
				v[j]=t++;
				self(self,j);
			}
		}
	};
	for(int i=0;i<N*2;i++){
		if(v[i]||c[i]){
			continue;
		}
		v[i]=t++;
		dfs(dfs,i);
	}
	if(count(v.begin(),v.end(),0)){
		cout<<"NEM"<<'\n';
		return 0;
	}
	cout<<"IGEN"<<'\n';
	for(int i=0;i<N;i++){
		cout<<v[i]<<' '<<v[N+i]<<'\n';
	}
	return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1828 KiB
2Elfogadva3ms1992 KiB
3Elfogadva6ms3592 KiB
subtask25/5
4Elfogadva97ms30244 KiB
5Elfogadva75ms28912 KiB
6Elfogadva48ms28040 KiB
subtask315/15
7Elfogadva3ms5468 KiB
8Elfogadva3ms5552 KiB
9Elfogadva3ms5680 KiB
10Elfogadva3ms5896 KiB
11Elfogadva3ms5984 KiB
12Elfogadva3ms6120 KiB
subtask410/10
13Elfogadva3ms6236 KiB
14Elfogadva3ms6216 KiB
15Elfogadva3ms6436 KiB
16Elfogadva3ms6432 KiB
17Elfogadva3ms6532 KiB
subtask535/35
18Elfogadva3ms6552 KiB
19Elfogadva3ms7172 KiB
20Elfogadva92ms34388 KiB
21Elfogadva93ms35644 KiB
22Elfogadva3ms9556 KiB
23Elfogadva3ms9716 KiB
24Elfogadva75ms36912 KiB
subtask635/35
25Elfogadva97ms37928 KiB
26Elfogadva97ms39268 KiB
27Elfogadva97ms40612 KiB
28Elfogadva97ms41932 KiB
29Elfogadva82ms42724 KiB
30Elfogadva98ms44532 KiB
31Elfogadva97ms45960 KiB
32Elfogadva93ms46896 KiB
33Elfogadva79ms48664 KiB
34Elfogadva103ms50208 KiB
35Elfogadva76ms52128 KiB