Submission #1180254

#TimeUsernameProblemLanguageResultExecution timeMemory
1180254bbartekStone Arranging 2 (JOI23_ho_t1)C++20
100 / 100
217 ms15768 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; #define st first #define nd second #define pb push_back const int maxn = 2e5+7; int liczby[maxn]; map<int,int> ostatni; int wynik[maxn]; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); int n; cin>>n; int a; for(int i=1;i<=n;i++){ cin>>a; liczby[i] = a; } stack<pair<pair<int,int>,int>> przedzialy; for(int i=1;i<=n;i++){ if(ostatni[liczby[i]] == 0){ ostatni[liczby[i]] = i; przedzialy.push({{i,i},liczby[i]}); } else{ while(przedzialy.top().st.st > ostatni[liczby[i]]){ ostatni[przedzialy.top().nd] = 0; przedzialy.pop(); } przedzialy.pop(); przedzialy.push({{ostatni[liczby[i]],i},liczby[i]}); } } while(przedzialy.size() != 0){ auto x = przedzialy.top(); przedzialy.pop(); for(int i=x.st.st;i<=x.st.nd;i++){ wynik[i] = x.nd; } } for(int i=1;i<=n;i++){ cout<<wynik[i]<<"\n"; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...