100262024-03-24 15:18:38111Széfnyitáscpp17Wrong answer 0/10012ms7040 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long

#undef DEBUG

signed main(){
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	int N;
#ifdef DEBUG
start:
	N=2+rand()%99;
	// N=4;
#else
	cin>>N;
#endif
	int a[N+1],g[N+1][2];
	for(int i=1;i<=N;i++){
#ifdef DEBUG
		a[i]=rand()&1,g[i][0]=1+rand()%N,g[i][1]=1+rand()%N;
#else
		cin>>a[i]>>g[i][0]>>g[i][1];
#endif
	}
	int K;
#ifdef DEBUG
	K=N;
#else
	cin>>K;
#endif
	for(int _=0;_<1000;_++){
		vector<int>b(N);
		for(int i=0;i<N;i++){
			b[i]=rand()&1;
		}
		map<vector<int>,vector<int>>m;
		int ok=1;
		for(int z=1;z<=N;z++){
			vector<int>v(N),c(N);
			int x=z;
			for(int i=0;i<N;i++){
				v[i]=a[x];
				x=g[x][b[i]];
			}
			for(int i=0;i<N;i++){
				c[i]=a[x];
				x=g[x][a[x]];
			}
			if(m.count(v)&&m[v]!=c&&count(c.begin(),c.end(),0)&&count(c.begin(),c.end(),1)){
				// for(int i:v)cout<<i<<' ';cout<<endl;
				// for(int i:c)cout<<i<<' ';cout<<endl;
				// for(int i:m[v])cout<<i<<' ';cout<<endl;
				ok=0;
				break;
			}
			m[v]=c;
		}
		if(ok){
			vector<array<int,2>>t(1);
			vector<int>r(1);
			for(int z=1;z<=N;z++){
				vector<int>v(N);
				int x=z;
				int y=0;
				for(int i=0;i<N;i++){
					v[i]=a[x];
					if(t[y][a[x]]==0){
						t[y][a[x]]=t.size();
						t.emplace_back();
						r.push_back(-1);
					}
					r[y]=b[i];
					y=t[y][a[x]];
					x=g[x][b[i]];
				}
				if(r[y]!=-1){
					continue;
				}
				int xx=x;
				vector<int>c(N);
				for(int i=0;i<N;i++){
					c[i]=a[x];
					x=g[x][a[x]];
				}
				if(!count(c.begin(),c.end(),0)){
					r[y]=1;
					t[y][1]=y;
					continue;
				}
				if(!count(c.begin(),c.end(),1)){
					r[y]=0;
					t[y][0]=y;
					continue;
				}
				x=xx;
				for(int i=0;i<N;i++){
					r[y]=a[x];
					if(g[x][a[x]]==xx){
						break;
					}
					t[y][a[x]]=t.size();
					t.emplace_back();
					r.push_back(-1);
					y=t[y][a[x]];
					x=g[x][a[x]];
				}
			}
			cout<<t.size()<<'\n';
			for(int i=0;i<t.size();i++){
				cout<<r[i]<<' '<<t[i][0]+1<<' '<<t[i][1]+1<<'\n';
			}
#ifdef DEBUG
			goto start;
#endif
			return 0;
		}
	}
#ifdef DEBUG
	cout<<N<<endl;
	for(int i=1;i<=N;i++){
		cout<<a[i]<<' '<<g[i][0]<<' '<<g[i][1]<<endl;
	}
#endif
	return 1;
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Wrong answer3ms2100 KiB
2Wrong answer3ms2208 KiB
subtask20/16
3Wrong answer3ms2236 KiB
4Wrong answer3ms2588 KiB
5Wrong answer3ms2648 KiB
6Wrong answer3ms2696 KiB
7Wrong answer3ms2824 KiB
8Wrong answer3ms2900 KiB
9Wrong answer3ms2968 KiB
10Wrong answer2ms2964 KiB
11Wrong answer2ms2964 KiB
12Wrong answer3ms3128 KiB
13Wrong answer3ms3188 KiB
subtask30/24
14Wrong answer3ms3216 KiB
15Wrong answer3ms3364 KiB
16Wrong answer3ms3460 KiB
17Wrong answer3ms3452 KiB
18Wrong answer3ms3612 KiB
19Wrong answer3ms3544 KiB
20Wrong answer3ms3676 KiB
21Wrong answer3ms3688 KiB
subtask40/23
22Wrong answer3ms3660 KiB
23Wrong answer3ms3668 KiB
24Wrong answer3ms3944 KiB
25Wrong answer3ms4252 KiB
26Wrong answer3ms4192 KiB
27Wrong answer3ms4120 KiB
28Wrong answer3ms4192 KiB
29Wrong answer3ms4388 KiB
subtask50/37
30Wrong answer3ms2236 KiB
31Wrong answer3ms2588 KiB
32Wrong answer3ms2648 KiB
33Wrong answer3ms2696 KiB
34Wrong answer3ms2824 KiB
35Wrong answer3ms2900 KiB
36Wrong answer3ms2968 KiB
37Wrong answer2ms2964 KiB
38Wrong answer2ms2964 KiB
39Wrong answer3ms3128 KiB
40Wrong answer3ms3188 KiB
41Wrong answer3ms3216 KiB
42Wrong answer3ms3364 KiB
43Wrong answer3ms3460 KiB
44Wrong answer3ms3452 KiB
45Wrong answer3ms3612 KiB
46Wrong answer3ms3544 KiB
47Wrong answer3ms3676 KiB
48Wrong answer3ms3688 KiB
49Wrong answer3ms3660 KiB
50Wrong answer3ms3668 KiB
51Wrong answer3ms3944 KiB
52Wrong answer3ms4252 KiB
53Wrong answer3ms4192 KiB
54Wrong answer3ms4120 KiB
55Wrong answer3ms4192 KiB
56Wrong answer3ms4388 KiB
57Wrong answer4ms4584 KiB
58Wrong answer7ms5740 KiB
59Wrong answer6ms5480 KiB
60Wrong answer8ms6220 KiB
61Wrong answer10ms6672 KiB
62Wrong answer10ms6676 KiB
63Wrong answer8ms6444 KiB
64Wrong answer12ms7028 KiB
65Wrong answer7ms6028 KiB
66Wrong answer12ms7040 KiB
67Wrong answer12ms7032 KiB
68Wrong answer10ms6728 KiB