Submission #1202082

#TimeUsernameProblemLanguageResultExecution timeMemory
1202082Francisco_Martin9월 (APIO24_september)C++20
45 / 100
99 ms8112 KiB
#include "september.h"
#include <bits/stdc++.h>
using namespace std;
using ll=long long;
const ll MAXN=1e5;

vector<bool> vis(MAXN,false); vector<ll> g[MAXN]; ll k=0;
void del(ll v){
    if(vis[v]) return;
    vis[v]=true; k++;
    for(auto u:g[v]) del(u);
}

int solve(int N,int M,vector<int> F,vector<vector<int>> S){
    ll ans=0; vector<ll> id(M,0); bool flag; k=0;
    for(int i=0; i<N; i++){
        vis[i]=false;
        g[i].clear();
    }
    for(int i=1; i<N; i++) g[F[i]].push_back(i);
    for(int i=0; i<N-1;){
        ans++;
        do{
            flag=true;
            for(int j=0; j<M; j++){
                do {
                    if(id[j]>=N) break;
                    del(S[j][id[j]++]);
                }while(id[j]!=k);
            }
            for(int j=0; j<M; j++) if(id[j]!=k && id[j]<N) flag=false;
        }while(!flag);
        i=id[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...