#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]);
edv--;
i++;
while(edv != 0 && i < N-1){
DFS(S[0][i]);
edv--;
i++;
}
}
return g;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |