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