100292024-03-24 15:33:12111Széfnyitáscpp17Hibás válasz 47/10085ms7440 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long

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*2);
			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*2;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*2);
				for(int i=0;i<N*2;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;
				vector<int>w(N+1);
				for(int i=0;i<N*2;i++){
					r[y]=a[x];
					if(w[g[x][a[x]]]){
						t[y][a[x]]=w[g[x][a[x]]];
						break;
					}
					w[x]=y;
					t[y][a[x]]=t.size();
					t.emplace_back();
					r.push_back(-1);
					y=t[y][a[x]];
					x=g[x][a[x]];
				}
				if(r[y]==-1){
					return 1;
				}
			}
			if(count(r.begin(),r.end(),-1)){
				return 1;
			}
			if(t.size()>50000){
				return 1;
			}
			for(int z=1;z<=N;z++){
				int x=z,y=0;
				int k=0;
				for(int i=0;i<100000;i++){
					k+=r[y]!=a[x];
					int xx=g[x][r[y]];
					int yy=t[y][a[x]];
					x=xx;
					y=yy;
				}
				if(k>K){
					cout<<z<<' '<<k<<'\n';
					return 1;
				}
			}
#ifdef DEBUG
			cout<<"OK"<<endl;
			goto start;
#else
			cout<<t.size()<<' '<<1<<'\n';
			for(int i=0;i<t.size();i++){
				cout<<r[i]<<' '<<t[i][0]+1<<' '<<t[i][1]+1<<'\n';
			}
#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;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva4ms1764 KiB
2Elfogadva4ms1924 KiB
subtask20/16
3Elfogadva4ms2140 KiB
4Elfogadva4ms2368 KiB
5Elfogadva4ms2572 KiB
6Elfogadva4ms2680 KiB
7Elfogadva4ms2884 KiB
8Elfogadva4ms2988 KiB
9Hibás válasz4ms3212 KiB
10Hibás válasz4ms3260 KiB
11Hibás válasz4ms3268 KiB
12Elfogadva4ms3388 KiB
13Elfogadva4ms3624 KiB
subtask324/24
14Elfogadva17ms3732 KiB
15Elfogadva17ms3764 KiB
16Elfogadva17ms4000 KiB
17Elfogadva17ms3972 KiB
18Elfogadva17ms4232 KiB
19Elfogadva17ms4332 KiB
20Elfogadva17ms4540 KiB
21Elfogadva17ms4380 KiB
subtask423/23
22Elfogadva17ms4348 KiB
23Elfogadva17ms4352 KiB
24Elfogadva17ms4712 KiB
25Elfogadva17ms4588 KiB
26Elfogadva17ms4568 KiB
27Elfogadva17ms4592 KiB
28Elfogadva17ms4592 KiB
29Elfogadva17ms4644 KiB
subtask50/37
30Elfogadva4ms2140 KiB
31Elfogadva4ms2368 KiB
32Elfogadva4ms2572 KiB
33Elfogadva4ms2680 KiB
34Elfogadva4ms2884 KiB
35Elfogadva4ms2988 KiB
36Hibás válasz4ms3212 KiB
37Hibás válasz4ms3260 KiB
38Hibás válasz4ms3268 KiB
39Elfogadva4ms3388 KiB
40Elfogadva4ms3624 KiB
41Elfogadva17ms3732 KiB
42Elfogadva17ms3764 KiB
43Elfogadva17ms4000 KiB
44Elfogadva17ms3972 KiB
45Elfogadva17ms4232 KiB
46Elfogadva17ms4332 KiB
47Elfogadva17ms4540 KiB
48Elfogadva17ms4380 KiB
49Elfogadva17ms4348 KiB
50Elfogadva17ms4352 KiB
51Elfogadva17ms4712 KiB
52Elfogadva17ms4588 KiB
53Elfogadva17ms4568 KiB
54Elfogadva17ms4592 KiB
55Elfogadva17ms4592 KiB
56Elfogadva17ms4644 KiB
57Elfogadva68ms4872 KiB
58Elfogadva82ms5884 KiB
59Elfogadva82ms5748 KiB
60Elfogadva82ms5920 KiB
61Elfogadva85ms6536 KiB
62Elfogadva85ms7168 KiB
63Elfogadva82ms6316 KiB
64Elfogadva85ms7128 KiB
65Elfogadva82ms6420 KiB
66Elfogadva83ms6836 KiB
67Elfogadva85ms7440 KiB
68Elfogadva83ms6796 KiB