提交时间:2023-10-28 11:01:46

运行 ID: 107821

#include<bits/stdc++.h> using namespace std; int n,a[30][30],cl[30]= {0}; bool visited[30]; string s; int turnNumber(int &x) { if(s[x]==' ') { x++; } int ru=0; while((s[x]<='9')&&(s[x]>='0')) { ru*=10; ru+=s[x++]-'0'; } return ru; } void workDFS(int x) { visited[x]=1; bool tp[5]={0}; for(int i=1; i<=n; i++) { if((visited[i])&&(a[x][i]==1)) { tp[cl[i]]=1; } } for(int i=1; i<=4; i++) { if(!tp[i]) { cl[x]=i; cout<<cl[x]<<" "; return; } } return; } int main() { cin>>n; for(int i=1; i<=n; i++) { for(int j=1; j<=n; j++) { a[i][j]=-1; } } getline(cin,s); for(int i=1; i<=n; i++) { getline(cin,s); int j=0; turnNumber(j); while(j<s.length()) { int tn=turnNumber(j); a[i][tn]=1; a[tn][i]=1; j++; } } for(int i=1; i<=n; i++) { workDFS(i); } cout<<endl; return 0; }