#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> lewy,prawy;
map<int,bool> usuniete;
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;
if(prawy[a] != 0){
lewy[a] = prawy[a];
prawy[a] = i;
}
else if(lewy[a] != 0){
prawy[a] = i;
}
else{
lewy[a] = i;
}
}
queue<int> Q;
for(int i=n;i>=1;i--){
if(i == prawy[liczby[i]]){
Q.push(liczby[i]);
}
if(lewy[liczby[i]] == i){
usuniete[liczby[i]] = 1;
}
wynik[i] = Q.front();
while(usuniete[Q.front()])
Q.pop();
}
for(int i=1;i<=n;i++){
cout<<wynik[i]<<"\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... |