Submission #1241315

#TimeUsernameProblemLanguageResultExecution timeMemory
1241315lunarechoSeptember (APIO24_september)C++20
0 / 100
0 ms580 KiB
#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 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...