# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
28349 | 2017-07-16T04:55:43 Z | 뚜루루뚜루(#1212, onjo0127) | Play Onwards (FXCUP2_onward) | C++ | 0 ms | 2068 KB |
#include <bits/stdc++.h> using namespace std; char str[209][22]; bool adj[209][209]; bool visited[209]; int res[209]; int n; void dfs(int now, int cnt) { res[now] = cnt%2 + 1; for(int i=0; i<n; i++) { if(adj[now][i] == 0 || visited[i]) continue; visited[i] = 1; dfs(i, cnt+1); } } int main() { int k; scanf("%d %d",&n,&k); for(int i=0; i<n; i++) scanf(" %s",str[i]); for(int i=0; i<n; i++) { for(int j=i+1; j<n; j++) { int ilen = strlen(str[i]); int jlen = strlen(str[j]); for(int x=0; x<=ilen-k; x++) { for(int y=0; y<=jlen-k; y++) { int p; for(p=0; p<k; p++) if(str[i][x+p] != str[j][y+p]) break; if(p==k) { adj[i][j] = adj[j][i] = 1; goto stop; } } } stop:; } } dfs(0,0); for(int i=0; i<n; i++) if(res[i] == 0) res[i] = 1; for(int i=0; i<n; i++) { for(int j=i+1; j<n; j++) { if(adj[i][j] && res[i] == res[j]) return !printf("No"); } } puts("Yes"); for(int i=0; i<n; i++) { if(res[i] == 0) puts("1"); else printf("%d\n",res[i]); } return 0; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 2068 KB | Output is correct |
2 | Correct | 0 ms | 2068 KB | Output is correct |
3 | Correct | 0 ms | 2068 KB | Output is correct |
4 | Incorrect | 0 ms | 2068 KB | Output isn't correct |
5 | Halted | 0 ms | 0 KB | - |