#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |