이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠉⠉⠉⠉⠉⠉⠉⠙⠻⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⠿⠛⠛⠛⠿⠃⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠈⠛⢿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⡿⠋⠁⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠹⣿⣿⣿⣿⣿
// ⣿⣿⠏⠁⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠈⢻⣿⣿⣿
// ⣿⠟⠄⠄⠄⠄⠄⢀⣀⣀⣠⣠⣤⣄⣀⡀⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠹⣿⣿
// ⡏⠄⠄⠄⠄⠄⣠⣿⣿⣿⣿⣿⣿⣿⣿⣷⡀⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠙⣿
// ⡇⠄⠄⠄⠄⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⢸
// ⠄⠄⠄⠄⠄⠘⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣆⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄
// ⠄⠄⠄⠄⠄⠄⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣀⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⢀
// ⡆⠄⠄⠄⠄⢀⣿⣿⣿⠿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠛⠛⠃⠄⠄⢠⡀⠄⠄⠄⠄⠄⢸
// ⣿⡄⠄⠄⠄⢸⣿⠋⣠⣄⣀⣀⣀⣈⣿⣿⣿⡏⢀⣤⣤⣤⡤⠄⡈⠻⠆⠄⠄⠄⠄⢸
// ⣿⣿⡀⠄⠄⠘⠩⣽⣟⣃⣀⣀⣀⣤⡍⣉⣉⠄⠠⣠⣤⣀⡀⠄⣀⣠⡀⡄⠄⠄⢀⣿
// ⣿⣿⣷⡀⠄⢠⣤⣸⣿⣿⣿⣿⣵⣷⣦⣿⣿⠄⢠⣾⣿⣷⣶⣶⣷⣿⣻⡇⠄⠄⢸⣿
// ⣿⣿⣿⣧⠄⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠛⢿⣿⣿⣿⣿⣿⣿⣿⡇⠄⠘⣼⣿
// ⣿⣿⣿⣿⣧⠄⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠾⠇⠹⣿⣿⣿⠿⠉⠟⢱⡀⢧⣿⣿
// ⣿⣿⣿⣿⣿⣵⣿⣿⣿⡿⠏⣸⣿⣯⣉⣉⠁⠄⠄⠄⠄⠄⠄⢀⡀⠄⠄⠈⡆⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⣾⣿⣿⣷⣰⡿⣿⣿⠿⠿⠿⠟⠓⠛⠄⠄⠄⣼⡇⠄⠄⢀⢹⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⣷⠹⣿⣿⣿⣿⣦⣶⣶⠶⠷⠶⠞⡂⠄⠄⠄⣻⠁⠄⠄⠄⠈⠻⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⣷⡌⠻⣿⣿⣿⣿⣿⡻⠿⠟⠋⠁⠄⢀⣴⠁⠄⠄⠄⠄⠄⠄⠹⣿
// ⣿⣿⣿⣿⣿⣿⣿⣿⡿⢄⠸⣿⣿⣿⣿⣶⣤⣤⣴⣶⣶⡿⠏⠄⠄⠄⠄⠄⠄⠄⠄⠺
// ⣿⣿⣿⣿⣿⣿⡿⡿⠅⠘⣧⣌⠛⠻⠿⠿⠟⠛⠛⠋⠁⠄⠄⠄⠄⠄⠄⠄⠄⡀⣄⣔
// ⣿⣿⣿⣿⢯⠇⠄⣶⠄⠄⢹⣿⣷⣦⡀⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⢀⣼⣿⣿⡟
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
using type=ll;
#define taskname "table"
// for Orac
#define tasknamein "table"
#define tasknameout "table"
#define fi first
#define se second
#define sz(v) ((type)(v).size())
#define all(v) (v).begin(), (v).end()
typedef pair<type, type> ii;
typedef vector<ii> vii;
typedef vector<type> vi;
typedef vector<vector<type>> vvi;
//for FFT
using cd = complex<double>;
const double PI = acos(-1);
const type MN=2e5+10;
const type oo=1e18;
const type llmax=0x3f3f3f3f3f3f;
type n, a[MN];
map<type, type> mp;
vector<pair<type, ii>> v;
void read() {
cin >> n;
for(int i=1; i<=n; i++) {
cin >> a[i];
mp[a[i]]=i;
}
// for(int i=1; i<=n; i++) {
// cout << mp[i] << " ";
// }
// cout << endl;
}
void sol(){
type i=1;
while(i<=n) {
//cout << a[i] << " " << i << " " << mp[a[i]] << endl;
if(mp[a[i]]>i) {
v.emplace_back(make_pair(a[i], make_pair(i, mp[a[i]])));
}
else {
v.emplace_back(make_pair(a[i], make_pair(i, i)));
}
i=mp[a[i]]+1;
}
for(auto i:v) {
for(type j=i.se.fi; j<=i.se.se; j++) {
cout << i.fi << endl;
}
}
}
signed main() {
//freopen(taskname".inp", "r", stdin);
//freopen(taskname".out", "w", stdout);
//for Orac
/*
ifstream in("tasknamein.txt");
ofstream out("tasknameout.txt");
*/
ios_base::sync_with_stdio(false);
cin.tie(NULL);
type t;
// cin >> t;
t=1;
while(t--) {
read();
sol();
cout << endl;
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |