제출 #1181127

#제출 시각아이디문제언어결과실행 시간메모리
1181127thangdz2k79월 (APIO24_september)C++20
100 / 100
171 ms11392 KiB
#include <bits/stdc++.h> using namespace std; int solve(int N, int M, vector <int> F, vector <vector <int>> S){ vector <vector <int>> adj(N); for (int i = 1; i < N; ++ i) adj[F[i]].push_back(i); vector <int> cnt(N, 0), vis(N, 0); int numm = 0, numt = 0; auto add = [&](int u) -> void { cnt[u] ++; if (cnt[u] == M) numm ++; queue <int> qu; if (!vis[u]) qu.push(u); while (qu.size()){ int u = qu.front(); qu.pop(); vis[u] = 1; numt ++; for (int v : adj[u]) if (!vis[v]) qu.push(v); } }; int ans = 0; for (int i = 0; i < N - 1; ++ i){ for (int j = 0; j < M; ++ j) add(S[j][i]); if (numm == numt) ans ++; } return ans; }
#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...
#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...