Submission #1121426

#TimeUsernameProblemLanguageResultExecution timeMemory
1121426ezzzaySeptember (APIO24_september)C++17
0 / 100
16 ms23976 KiB
#include<bits/stdc++.h> using namespace std; #define ff first #define ss second #define pb push_back const int MN=1e6+5; vector<int>v[MN]; bool vis[MN]; int par[MN]; int pos[MN]; int mx=-1; void dfs(int a){ vis[a]=1; for(auto b:v[a]){ if(vis[b]==1)continue; mx=max(mx,pos[b]); dfs(b); } } int solve(int N, int M, std::vector<int> F, std::vector<std::vector<int>> S) { mx=0; for(int i=0;i<N;i++){ v[i].clear(); vis[i]=0; } for(int i=1;i<N;i++){ par[i]=F[i]; v[F[i]].pb(i); } int k=0; for(int i=0;i<N-1;i++){ pos[S[0][i]]=i; } int i=0; while(i<N-1){ bool u=0; while(i<=mx){ int a=S[0][i]; if(vis[a]==0){ dfs(a); } i++; u=1; } if(u==0){ i++; } k++; } return k; }
#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...