#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) {
int n = N, m = M;
vector<vector<int>> v(n, vector<int>());
vector<vector<bool>> f(m, vector<bool>(n));
vector<bool> f2(n);
multiset<int> ms;
for (int i = 1; i < n; i++) {
v[F[i]].emplace_back(i);
}
auto dfs = [&] (auto &&dfs, int cur, int par, int idx) -> void {
if (f[idx][cur]) return; f[idx][cur] = 1;
if (!f2[cur]) {
f2[cur] = 1;
for (int i = 0; i < m; i++) ms.emplace(cur);
}
for (auto &e: v[cur]) {
if (par == e) continue;
dfs(dfs, e, cur, idx);
}
};
int ans = 0;
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < m; j++) dfs(dfs, S[j][i], -1, j);
for (int j = 0; j < m; j++) ms.erase(ms.find(S[j][i]));
if (ms.empty()) ans++;
}
return ans;
return 0;
}
# | 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... |