Submission #1175002

#TimeUsernameProblemLanguageResultExecution timeMemory
1175002AlgorithmWarriorStone Arranging 2 (JOI23_ho_t1)C++20
100 / 100
87 ms14452 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]; unordered_set<int>util; 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.find(v[i])!=util.end()){ while(stv.top().val!=v[i]){ util.erase(stv.top().val); stv.pop(); } } else{ util.insert(v[i]); 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...