#include <bits/stdc++.h>
#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath>
using namespace std;
#define all(a) (a).begin(), (a).end()
#define sz(a) (int)(a).size()
#define pb push_back
#define ll long long
#define ui uint64_t
#define ar array
#define us unordered_set
#define cont(set, element) ((set).find(element) != (set).end())
/********* DEBUG *********/
template <typename T>
void outvec(const vector<T>& Z){
for (const T& x : Z)
cout << x << ' ';
cout << "\n";
}
/********* DEBUG *********/
const int MOD = 1e9+7;
const int mxN = 200005;
const ll inf = 1e18;
void dfs(int node, vector<vector<int>> &children, vector<bool> &visited, int &cnt){
if (visited[node])
return;
visited[node] = true;
cnt++;
for (auto x : children[node])
if (!visited[x])
dfs(x, children, visited, cnt);
}
int solve(int N, int M, vector<int> F, vector<vector<int>> S){
vector<vector<int>> children(N, vector<int>());
for (int i = 1; i < sz(F); i++){
children[F[i]].pb(i);
}
int ans = 0;
int diffs = 0;
int minleaf = 0;
map<int,int> cnts;
vector<bool> visited(N, false);
for (int i = 0; i < N-1; i++){
for (auto &x : S){
int node = x[i];
if (!visited[node]){
dfs(node, children, visited, minleaf);
}
cnts[node]++;
if (cnts[node] == 1){
diffs++;
}
if (cnts[node] == M){
diffs--;
}
}
if (i >= minleaf-1 && diffs == 0)
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... |