Submission #1076640

#TimeUsernameProblemLanguageResultExecution timeMemory
1076640dwuyStone Arranging 2 (JOI23_ho_t1)C++14
100 / 100
281 ms29420 KiB
#include <bits/stdc++.h> #define int long long using namespace std; const int MX = 200005; int n; int a[MX]; void nhap(){ cin >> n; for(int i=1; i<=n; i++) cin >> a[i]; } void solve(){ stack<int> st; map<int, vector<int>> mp; for(int i=1; i<=n; i++){ if(mp[a[i]].size()){ int p = mp[a[i]].back(); while(st.size() && st.top() >= p){ int u = st.top(); st.pop(); if(mp[a[u]].size() && mp[a[u]].back() == u) mp[a[u]].pop_back(); } } mp[a[i]].push_back(i); st.push(i); } int value = 0; for(int i=n; i>=1; i--){ if(st.size() && i == st.top()){ value = a[st.top()]; st.pop(); } a[i] = value; } for(int i=1; i<=n; i++) cout << a[i] << '\n'; } int32_t main(){ ios_base::sync_with_stdio(false); cin.tie(0); nhap(); solve(); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...