提交时间:2023-10-24 14:03:35

运行 ID: 107509

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