#include "september.h"
#include <unordered_set>
#include <vector>
using namespace std;
#define REP(a,i,n) for (int i=a;i<n;i++)
unordered_set<int> leafed;
vector<vector<int>> childs(200001);
int freq[200001], visited[200001];
void loadChildren(int N, vector<int> F) {
REP(1,i,N) {
childs[F[i]].push_back(i);
}
}
void including(int parent) {
visited[parent]=1;
leafed.insert(parent);
for (auto leaf : childs[parent]) {
if (!visited[leaf]) {
including(leaf);
}
}
}
int solve(int N, int M, vector<int> F, vector<vector<int>> S) {
int K=0;
loadChildren(N, F);
REP(0,i,N-1) {
REP(0, log, M) {
int leaf = S[log][i];
freq[leaf]++;
if (!visited[leaf]) {
including(leaf);
}
if (freq[leaf]>=M) {
leafed.erase(leaf);
}
}
if (leafed.size()==0) {
K++;
}
}
return K;
}
# | 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... |