#include <bits/stdc++.h>
#define int long long
using namespace std;
int a;
int z[1000005];
unordered_map<int,int> m;
struct node{
     int l,r,col;
};
vector <node> v;
signed main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cin >> a;
    for (int i=1;i<=a;i++){
         cin >> z[i];
    }
    for (int i=1;i<=a;i++){
         int pos=m[z[i]];
         if (pos==0){
             v.push_back({i,i,z[i]});
             m[z[i]]=i;
         }else{
             while (v.back().col!=z[i]){
                   node res=v.back();
                   m[res.col]=0;
                   v.pop_back();
             }
             node res=v.back();
             v.pop_back();
             v.push_back({res.l,i,z[i]});
             m[z[i]]=i;
         }
    }
    for (auto p:v){
         for (int i=p.l;i<=p.r;i++){
              cout << p.col << "\n";
         }
    }
    return 0;
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |