제출 #28327

#제출 시각아이디문제언어결과실행 시간메모리
28327슈퍼스타 tlwpdus (#68)Play Onwards (FXCUP2_onward)C++11
1 / 1
119 ms2292 KiB
#include <bits/stdc++.h> using namespace std; int n, k; char str[210][22]; int len[210]; vector<int> lis[210]; int mlen(int n, char str[], int m, char ttr[]) { int i, j, k, res = 0; i = 0; for (j=0;j<m;j++) { int p = 0; for (k=0;k<m-j&&k<n-i;k++) { if (str[i+k]==ttr[j+k]) { res = max(res,k-p+1); } else { p = k+1; } } } j = 0; for (i=0;i<n;i++) { int p = 0; for (k=0;k<m-j&&k<n-i;k++) { if (str[i+k]==ttr[j+k]) { res = max(res,k-p+1); } else { p = k+1; } } } return res; } bool flag = 1; int col[210]; void dfs(int here, int p, int c) { col[here] = c; for (auto &there : lis[here]) { if (col[there]) { if (col[there]==3-c) { } else { flag = 0; } continue; } dfs(there,here,3-c); } } int main() { int i, j; scanf("%d%d",&n,&k); for (i=0;i<n;i++) { scanf("%s",str[i]); len[i] = strlen(str[i]); } for (i=0;i<n;i++) { for (j=0;j<n;j++) { if (i==j) continue; if (mlen(len[i],str[i],len[j],str[j])>=k) { lis[i].push_back(j); } } } for (i=0;i<n;i++) { if (col[i]) continue; dfs(i,-1,1); } if (!flag) { printf("No\n"); return 0; } int cnt[3] = {0,0,0}; for (i=0;i<n;i++) { cnt[col[i]]++; } printf("Yes\n"); if (cnt[1]==0) { printf("1\n"); for (i=1;i<n;i++) printf("2\n"); } else if (cnt[2]==0) { printf("2\n"); for (i=1;i<n;i++) printf("1\n"); } else { for (i=0;i<n;i++) printf("%d\n",col[i]); } return 0; }

컴파일 시 표준 에러 (stderr) 메시지

onward.cpp: In function 'int main()':
onward.cpp:60:21: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d%d",&n,&k);
                     ^
onward.cpp:62:21: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%s",str[i]);
                     ^
#Verdict Execution timeMemoryGrader output
Fetching results...