Submission #1160430

#TimeUsernameProblemLanguageResultExecution timeMemory
1160430mentalmath231September (APIO24_september)C++20
100 / 100
627 ms12972 KiB
#include <bits/stdc++.h>
using namespace std; 
typedef long long ll;
int cnt = 0;
vector<int> visited(100002,0);
vector<vector<int>> kid(100002,vector<int>());
void dfs(int x){
	if (!visited[x]){
		cnt +=1;
		visited[x] = 1;
		for (auto i: kid[x]){
			dfs(i);
		}
	}
}
int solve(int n, int m, vector<int> f,  vector<vector<int>> s) {
	int ans = 0;
	cnt = 0;
	visited = vector<int>(100002,0);
	kid = vector<vector<int>>(100002,vector<int>());
	for (int i =1; i<n; i++){
		kid[f[i]].push_back(i);
	}
	for (int i =0; i<n-1; i++){
		for (int j= 0; j<m; j++){
			dfs(s[j][i]);
		}
		if (cnt == i+1){
			ans +=1;
		}
	}
	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...