#include "september.h"
#include <bits/stdc++.h>
using namespace std;
int dfs(int node,vector<int>& sz,vector<int> adj[])
{
int subtree = 0;
for(int neighbour : adj[node])
{
sz[neighbour] = dfs(neighbour,sz,adj);
subtree += sz[neighbour] + 1;
}
sz[node] = subtree;
return sz[node];
}
int solve(int N, int M, std::vector<int> F, std::vector<std::vector<int>> S) {
vector<int> adj[N];
for(int i=1;i<N;++i)
{
int u = i;
int v = F[i];
adj[v].push_back(i);
}
vector<int> sz(N,0);
int x = dfs(0,sz,adj);
int cnt = 0;
for(int i=0;i<N;++i)
{
int nd = S[0][i];
if(sz[nd] == 0)
{
++cnt;
--sz[F[nd]];
}
}
return cnt;
}
# | 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... |