Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
100358 | 黄戈 | 四色地图 | C++ | 通过 | 100 | 0 MS | 256 KB | 723 | 2023-08-25 15:00:13 |
#include <bits/stdc++.h> using namespace std; 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; }