#include "september.h"
#include<bits/stdc++.h>
using namespace std;
#define F first
#define S second
#define pb push_back
#define vll vector<ll>
#define pll pair<ll, ll>
typedef long long ll;
namespace{
const ll mxN=1e5+5;
vll adj[mxN];
bool visited[mxN];
set<ll> st;
void dfs(ll cur){
if(visited[cur]) return;
visited[cur]=1;
// cout<<"visiting "<<cur<<'\n';
st.insert(cur);
for(auto &chd:adj[cur]){
dfs(chd);
}
}
}
int solve(int n, int m, vector<int> p, vector<vector<int>> a) {
st.clear();
for(ll i=0;i<n;i++){
adj[i].clear();
visited[i]=0;
}
for(ll i=1;i<n;i++){
adj[p[i]].pb(i);
}
ll ans=0;
ll len=0;
for(ll i=0;i<n-1;i++){
len++;
// cout<<"i: "<<i<<'\n';
for(ll j=0;j<m;j++){
dfs(a[j][i]);
}
if((ll) st.size()==len){
ans++;
// cout<<i<<'\n';
len=0;
st.clear();
}
}
return ans;
}
# | 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... |