#include "september.h"
#include <bits/stdc++.h>
using namespace std;
vector<vector<int>>g;
vector<vector<int>>vis;
vector<set<int>>st;
void dfs(int u,int j){
vis[j][u] = 1;
for(int v : g[u]){
if(!vis[j][v]){
st[j].insert(v);
dfs(v, j);
}
}
}
int solve(int n, int m, std::vector<int> adj, std::vector<std::vector<int>> val) {
g.assign(n, {});
st.assign(n, {});
vis.assign(n, vector<int>(m, 0));
for(int i = 1; i < n; i ++){
g[adj[i]].push_back(i);
}
int ans = 0, cnt = 0;
vector<int>oc(n);
for(int i = 0; i < n - 1; i ++){
int ok = 1;
for(int j = 0; j < m; j ++){
int cur = val[j][i];
oc[cur] ++;
if(oc[cur] == m)cnt ++;
if(st[j].count(cur))st[j].erase(cur);
else dfs(cur, j);
if(st[j].size() != 0)ok = 0;
}
if(ok && cnt == i + 1)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... |