#include "september.h"
#include <bits/stdc++.h>
#define pii pair<int,int>
#define ff first
#define ss second
using namespace std;
pii p = {109,59};
pii mod = {1e9+7,1e9+9};
int exp(int x,int a,int mod)
{
int ans = 1;
for (;a>0;a/=2,x=x*x%mod)
if(a%2) ans=ans*x%mod;
return ans;
}
int solve(int N, int M, std::vector<int> F, std::vector<std::vector<int>> S) {
int n=N,m=M;
auto par = F;
auto s = S;
vector<int> del(n,0);
vector<vector<int>> graph(n);
for (int i = 1; i < n; i++)
graph[par[i]].push_back(i);
int cnt = 0;
function<void(int)> dfs = [&](int cur)
{
if (del[cur])return;
cnt++;
del[cur] =1;
for(int a : graph[cur])
dfs(a);
};
vector<set<int>> mile(m);
int ans = 0;
for (int i = 0; i < n-1; i++)
{
dfs(s[0][i]);
bool bad = 0;
for(int j =0;j < m; j++)
mile[j].insert(s[j][i]);
for (int j = 1; j <m;j++)
if(mile[j]!=mile[j-1])
bad = 1;
if(cnt==i+1 &&!bad)
ans++;
}
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... |