cf B. Flag Day

http://codeforces.com/contest/357/problem/B

 1 #include <cstdio>
 2 #include <cstring>
 3 #include <algorithm>
 4 #define maxn 100010
 5 using namespace std;
 6 
 7 int g[maxn][4];
 8 int n,m;
 9 int vis[maxn];
10 int num[maxn];
11 bool vis1[4];
12 
13 
14 
15 int main()
16 {
17      while(scanf("%d%d",&n,&m)!=EOF)
18      {
19          memset(vis,0,sizeof(vis));
20          for(int i=1; i<=m; i++)
21          {
22              int x,y,z;
23              scanf("%d%d%d",&x,&y,&z);
24              if(num[x])
25              {
26                  num[y]=num[x]%3+1;
27                  num[z]=num[y]%3+1;
28              }
29              else if(num[y])
30              {
31                  num[z]=num[y]%3+1;
32                  num[x]=num[z]%3+1;
33              }
34              else if(num[z])
35              {
36                  num[x]=num[z]%3+1;
37                  num[y]=num[x]%3+1;
38              }
39              else
40              {
41                  num[x]=1;
42                  num[y]=2;
43                  num[z]=3;
44              }
45          }
46          for(int i=1; i<=n; i++)
47          {
48              if(i==1)
49              printf("%d",num[i]);
50              else printf(" %d",num[i]);
51          }
52          printf("
");
53      }
54      return 0;
55 }
View Code
原文地址:https://www.cnblogs.com/fanminghui/p/3934406.html