Submission #1174999

#TimeUsernameProblemLanguageResultExecution timeMemory
1174999AlgorithmWarriorStone Arranging 2 (JOI23_ho_t1)C++20
35 / 100
29 ms2376 KiB
#include <bits/stdc++.h> using namespace std; int const MAX=2e5+5; struct posval{ int pos,val; }; int n; int v[MAX]; int ans[MAX]; bool util[MAX]; void read(){ cin>>n; int i; for(i=1;i<=n;++i) cin>>v[i]; } void solve(){ stack<posval>stv; int i; for(i=1;i<=n;++i) if(util[v[i]]){ while(stv.top().val!=v[i]){ util[stv.top().val]=0; stv.pop(); } } else{ util[v[i]]=1; stv.push({i,v[i]}); } int last=n+1; while(!stv.empty()){ auto [pos,val]=stv.top(); stv.pop(); for(i=pos;i<last;++i) ans[i]=val; last=pos; } } void write(){ int i; for(i=1;i<=n;++i) cout<<ans[i]<<'\n'; } int main() { read(); solve(); write(); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...