This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
//chockolateman
#include<bits/stdc++.h>
using namespace std;
int in_deegree[100005][10],positions[10];
vector<int> children[100005];
bool removed[100005][10];
bool set_to_remove[100005][10];
void init(int N,int M)
{
for(int i = 0 ; i < M ; i++)
{
positions[i] = 0;
for(int j = 0 ; j < N ; j++)
{
in_deegree[j][i] = 0;
children[j].clear();
removed[j][i] = false;
set_to_remove[j][i] = false;
}
}
}
int solve(int N, int M, std::vector<int> F,std::vector<std::vector<int>> S)
{
for(int i = 1 ; i < N ; i++)
{
children[F[i]].push_back(i);
for(int j = 0 ; j < M ; j++)
{
in_deegree[F[i]][j]++;
}
}
int counter = 0;
stack<int> removal_list;
while(positions[0] != N-1)
{
counter++;
for(int i = 0 ; i < M ; i++)
{
removal_list.push(S[i][positions[i]]);
set_to_remove[S[i][positions[i]++]][i] = true;
}
while(!removal_list.empty())
{
int v = removal_list.top();
removal_list.pop();
for(int i = 0 ; i < M ; i++)
if(!removed[v][i])
{
if(!set_to_remove[v][i])
{
while(S[i][positions[i]] != v)
{
set_to_remove[S[i][positions[i]]][i] = true;
removal_list.push(S[i][positions[i]++]);
}
}
removed[v][i] = true;
in_deegree[F[v]][i]--;
if(in_deegree[v][i]==0)
continue;
for(auto u : children[v])
{
if(!set_to_remove[u][i])
continue;
in_deegree[v][i]--;
removal_list.push(u);
}
}
}
}
init(N,M);
return counter;
}
# | 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... |