Submission #1332458

#TimeUsernameProblemLanguageResultExecution timeMemory
1332458aren_danceSeptember (APIO24_september)C++20
0 / 100
1 ms580 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int N=2e5+100;
vector<int> g[N];
vector<int> f1;
int sz[N];
void dfs(int v){
    sz[v]=f1[v];
    for(auto i:g[v]){
        dfs(i);
        sz[v]=max(sz[v],sz[i]);
    }
}
int solve(int n, int m, std::vector<int> f,
std::vector<std::vector<int>> s){
    for(int i=0;i<=n;++i){
        g[i].clear();
    }
    for(int i=1;i<n;++i){
        g[f[i]].push_back(i);
    }
    f1.clear();
    f1.resize(n+1);
    for(int i=0;i<f.size();++i){
        f1[f[i]]=i;
    }
    dfs(0);
    int day=0;
    int last_mx=0;
    for(int i=0;i<f.size();++i){
        last_mx=max(last_mx,sz[i]);
        if(last_mx==i){
            day++;
        }
    }
    return day;
}
#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...