#include using namespace std; using ll = long long; #define FOR(i,a,b) for(ll i=(a);i<(b);++i) #define ALL(v) (v).begin(), (v).end() #define p(s) cout<<(s)<> N; vector A(N); FOR(i, 0, N){ cin >> A.at(i); } // その値が出てくる最後の位置 map mp; FOR(i, 0, N){ mp[A[i]] = i; } set se; FOR(i, 0, N-1){ ll a = A[i]; se.insert(a); ll ma = *se.rbegin(); A[i] = ma; if(mp[a]==i){ se.erase(a); } } cout << A[0]; FOR(i, 1, N){ cout << " " << A[i]; } cout << endl; return 0; }