Submission #1201458

#TimeUsernameProblemLanguageResultExecution timeMemory
1201458Francisco_MartinSeptember (APIO24_september)C++20
0 / 100
1096 ms320 KiB
#include "september.h"
#include <bits/stdc++.h>
using namespace std;
using ll=long long;
vector<bool> vis; vector<ll> A; vector<vector<ll>> g;

void del(ll v){
    if(vis[v]) return;
    vis[v]=true;
    A.push_back(v);
    for(auto u:g[v]){
        if(vis[u]) continue;
        del(u);
    }
}

int solve(int N,int M,vector<int> F,vector<vector<int>> S){
    ll ans=0; vector<ll> J(M,0); bool flag;
    vis.resize(N,false); g.resize(N,{}); A.clear();
    for(int i=1; i<N; i++) g[F[i]].push_back(i);;
    for(int i=0; i<N-1; i++){
        ans++; del(S[0][J[0]]);
        do{
            flag=true;
            for(int j=0; j<M; j++){
                while(J[j]!=A.size()) del(S[j][J[j]++]);
            }
            for(int j=0; j<M; j++) if(J[j]!=A.size()) flag=false;
        }while(!flag);
        i=J[0];
    }
	return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...