#include "september.h"
#include <vector>
#include <bits/stdc++.h>
using namespace std;
int solve(int N, int M, std::vector<int> F, std::vector<std::vector<int>> S) {
vector<set<int>> s(M);
int k = 0;
int nodes = N;
int degs = nodes-1;
vector<int> deg(N, 1);
deg[0]--;
for (int i = 1; i < N; i++)
deg[F[i]]++;
vector<vector<int>> adj(N);
for (int j = 1; j < N; j++)
adj[F[j]].push_back(j);
for (int i = 0; i < N-1; i++) {
bool yes = true;
for (int j = 0; j < M; j++) {
s[j].insert(S[j][i]);
if (j > 0 && s[j] != s[j-1]) yes = false;
}
nodes--;
degs -= deg[S[0][i]];
deg[F[S[0][i]]]--;
for (int j = 0; j < adj[S[0][i]].size(); j++)
deg[adj[S[0][i]][j]]--;
if (yes && nodes - degs == 1)
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... |