Submission #1346422

#TimeUsernameProblemLanguageResultExecution timeMemory
1346422phamngocphuc20089월 (APIO24_september)C++20
0 / 100
1 ms344 KiB
#include "september.h"

#include <bits/stdc++.h>
using namespace std;

vector<bool> vis;
vector<vector<int>> adj;
int cnt;
void dfs(int v)
{
	if(!vis[v]) ++cnt;
	vis[v] = true;
	for(auto u : adj[v])
	{
		if(!vis[v]) dfs(u);
	}
}

int solve(int N, int M, std::vector<int> F, std::vector<std::vector<int>> S) {
	adj.clear();
	adj.resize(N);
	vis.clear();
	vis.assign(N, false);
	for(int i = 1; i < N; ++i)
	{
		adj[F[i]].emplace_back(i);
	}
	cnt = 0;
	int ans = 0;
	for(int i = 0; i < N - 1; ++i)
	{
		for(int j = 0; j < M; ++j) dfs(S[j][i]);
		--cnt;
		if(cnt == 0) ++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...