제출 #563799

#제출 시각아이디문제언어결과실행 시간메모리
563799dantoh000Mergers (JOI19_mergers)C++14
0 / 100
123 ms41252 KiB
#include <bits/stdc++.h> using namespace std; int n,k; vector<int> G[1000005]; int c[1000005]; int low[1000005]; int num[1000005]; int p[1000005]; int sz[1000005]; int ct = 0; int ans = 0; int A[500005]; int B[500005]; void dfs(int u){ num[u] = low[u] = ct++; sz[u] = 1; for (auto v : G[u]){ if (num[v] == -1){ p[v] = u; //printf("%d -> %d\n",u,v); dfs(v); if (low[v] > num[u] && u <= n && v <= n){ //printf("%d %d\n",u,v); if (A[v] == 0){ A[v] = 1; } } low[u] = min(low[v], low[u]); } else if (v != p[u]){ low[u] = min(num[v], low[u]); } } } void dfs2(int u, int p){ for (auto v : G[u]){ if (v == p) continue; if (v > n) continue; dfs2(v, u); B[u] |= B[v]; } if (B[u] == 0 && A[u] == 1){ ans++; B[u] = 1; } } int main(){ scanf("%d%d",&n,&k); for (int i = 1; i < n; i++){ int a,b; scanf("%d%d",&a,&b); G[a].push_back(b); G[b].push_back(a); } for (int i = 1; i <= n; i++){ scanf("%d",&c[i]); G[i].push_back(n+c[i]); G[n+c[i]].push_back(i); } memset(low,-1,sizeof(low)); memset(num,-1,sizeof(num)); dfs(1); dfs2(1, -1); if (ans == 0) printf("0"); else printf("%d",max(ans-1,1)); }

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

mergers.cpp: In function 'int main()':
mergers.cpp:49:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   49 |     scanf("%d%d",&n,&k);
      |     ~~~~~^~~~~~~~~~~~~~
mergers.cpp:53:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   53 |         scanf("%d%d",&a,&b);
      |         ~~~~~^~~~~~~~~~~~~~
mergers.cpp:58:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   58 |         scanf("%d",&c[i]);
      |         ~~~~~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...