#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int solve(int N, int M, vector<int> F, vector<vector<int>> S)
{
vector<vector<int>> chi(N);
for (int i = 1; i < N; i++)
{
chi[F[i]].push_back(i);
}
int op = 0;
set<int> s;
for (int i = 0; i < N - 1; i++)
{
if (s.empty())
op++;
for (int j = 0; j < M; j++)
{
stack<int> st;
st.push(S[j][i]);
while (!st.empty())
{
int a = st.top();
st.pop();
if (s.find(a) == s.end())
{
for (int k = 0; k < chi[a].size(); k++)
{
st.push(chi[a][k]);
}
}
s.insert(a);
}
s.erase(S[j][i]);
}
}
return op;
}
# | 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... |