提交时间:2023-10-25 13:54:16

运行 ID: 107569

#include<bits/stdc++.h> using namespace std; int n,link[27][2],t,s[27],flag; void dfs(int cur) { if(s[cur]) return; if(s[link[cur][0]]&&s[link[cur][1]]) flag=1; for(int k=0;k<=1;k++) { for(int i=1;i<=4;i++) if(i!=s[link[cur][0]]&&i!=s[link[cur][1]]) { s[cur]=i; if(flag) { for(int j=1;j<=n;j++) cout<<s[j]<<' '; exit(0); } if(!s[link[cur][k]]) dfs(link[cur][k]); s[cur]=0; } } } int main() { cin>>n; for(int i=1;i<=n;i++) cin>>t,cin>>link[t][0]>>link[t][1]; dfs(1); }