Submission #1277268

#TimeUsernameProblemLanguageResultExecution timeMemory
1277268tasso7September (APIO24_september)C++20
0 / 100
1 ms568 KiB
#include "september.h"
#include <iostream>
#include <vector>

using namespace std;

vector<bool> caduti;

vector<vector<int>> adj;

int edv = 0;

void DFS(int n){
	//cout<<"D:"<<n << endl;
	if(caduti[n]){return;}
	//cout << "=>" << endl;
	caduti[n] = true;
	edv++;
	for(int k : adj[n]){DFS(k);}
	//cout << "-" << endl;
}

int solve(int N, int M, std::vector<int> F, std::vector<std::vector<int>> S) {
	//caso M = 1
	adj = vector<vector<int>>(N, vector<int>{});
	caduti=vector<bool>(N,false);
	for(int i = 1; i < N; i++){
		adj[F[i]].push_back(i);
	}
	
	int i = 0;
	int g = 0;
	while(i < N-1){
		g++;
		DFS(S[0][i]);
		i++;
		while(edv != 0 && i < N-1){
			DFS(S[0][i]);
			edv--;
			i++;
		}
	}
	return g;
}
#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...