제출 #1160221

#제출 시각아이디문제언어결과실행 시간메모리
1160221lpostrophe9월 (APIO24_september)C++20
100 / 100
149 ms14548 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long 
#define PB push_back
#define MP make_pair
#define fi first
#define se second



int vertices;
vector<set<int>> adj;
vector<bool> visited;



void dfs(int x){
	if(!visited[x]){
		visited[x]=true;
		vertices+=1;
		for(auto y:adj[x]){
			dfs(y);
		}
	}
}

int solve(int n, int m, vector<int> f, vector<vector<int>>s){
	
	adj.clear();
	visited.resize(n);
	fill(visited.begin(), visited.end(), false);
	adj.resize(n);
	for(int i=1; i<n; i++){
		adj[f[i]].insert(i);

	}
	vertices=0;
	int ans=0;

	for(int i=0; i<n-1; i++){
		for(int j=0; j<m; j++){
			dfs(s[j][i]);
		}
		if(vertices==i+1){
			ans+=1;
		}
		

	}
	return ans;


	
	

}
// int main(){
// 	cout<<solve(3, 1, {-1, 0, 0}, {{1, 2}});
// }









#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...