#include <bits/stdc++.h>
using namespace std;
int solve(int N, int M, std::vector<int> F, std::vector<std::vector<int>> S) {
vector<int> g(N,0);
vector<bool> s(N,0);
vector<vector<int> > v(M,vector<int>(N));
unordered_set<int> req;
vector<int> e;
int ans=0,t=0,c,p;
bool flag;
for (int i=1; i<N; i++){
g[F[i]]++;
}
for (int i=0; i<S[0].size(); i++){
c=S[0][i];
if (g[c]){
t++;
s[c]=1;
}
p=F[c];
g[p]--;
if (!g[p] and s[p]){
t--;
s[p]=0;
}
for (int r=0; r<M; r++){
v[r][S[r][i]]++;
e.push_back(S[r][i]);
}
for (int i=0; i<e.size(); i++){
flag=1;
c=e[i];
for (int r=1; r<M; r++){
if (v[r][c]!=v[0][c]){
flag=0;
break;
}
}
if (flag){
req.erase(c);
}
else{
req.insert(c);
}
}
e.clear();
if (!t and req.empty()){
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... |