Submission #1179013

#TimeUsernameProblemLanguageResultExecution timeMemory
1179013GurbanSeptember (APIO24_september)C++20
45 / 100
114 ms14532 KiB
#include "september.h" #include <bits/stdc++.h> using namespace std; const int maxn=1e5+5; int pos[maxn]; int con[maxn]; vector<int>E[maxn]; void dfs(int nd){ con[nd] = pos[nd]; int mx = -1; for(auto i : E[nd]){ dfs(i); mx = max(mx, pos[i]); } if(mx > pos[nd]){ con[nd] = mx; } } int solve(int N, int M, vector<int> F, vector<vector<int>> S){ for(int i = 0;i < N;i++) E[i].clear(); for(int i = 1;i < N;i++) E[F[i]].push_back(i); for(int i = 0;i < N-1;i++){ pos[S[0][i]] = i; } dfs(0); int mx = 0; int K = 0; for(int i = 0;i < N-1;i++){ mx = max(mx, con[S[0][i]]); if(mx == 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...