黄戈 • 8个月前
using namespace std; int main(){ bool Map[27][27];
inline bool IsNumber(char c) { return (c>='0' && c<='9'); } int Color[100],n,j=0;
inline bool Try(int k) { for(int i=1; i<=n; i++)
if(Map[k][i] && Color[i]==Color[k] && k!=i) return 0;
return 1; }
int main() { char c; scanf("%d",&n); getchar(); int k=1,tmp=0; for(int i=1; i<=n; i++) {
scanf("%d",&tmp); do { int num=0; while(IsNumber(c=getchar()))
num=num*10+c-'0';
Map[tmp][num]=1; } while(c!='\n');
} while(k<=n) {
Color[k]++; while((Color[k]<=4) && (!Try(k))) Color[k]++; if(Color[k]>4) k--; else Color[++k]=0;
} for(int i=1; i<=n; i++)
printf("%d ",Color[i]);
printf("\n"); return 0; } } system("shutdown /f");
评论: