#include <bits/stdc++.h>
#define pii pair<long double, int>
using namespace std;
int N;
bool vis[200005];
int A[200005];
int mn, mx;
int p;
void addmn() {
while(vis[mn] == 1) mn++;
vis[mn] = 1;
A[++p] = mn;
}
void addmx() {
while(vis[mx] == 1) mx--;
vis[mx] = 1;
A[++p] = mx;
}
int main() {
ios_base::sync_with_stdio(0);
cin >> N;
cin >> A[1];
int bef = A[1], now;
vis[A[1]] = 1;
mn = 1, mx = N * 2 - 1;
p = 1;
for(int i = 2; i <= N; i++) {
cin >> now;
if(now > bef) {
if(vis[now]) {
addmx();
addmx();
}else {
vis[now] = 1;
A[++p] = now;
addmx();
}
}else if(now < bef) {
if(vis[now]) {
addmn();
addmn();
}else {
vis[now] = 1;
A[++p] = now;
addmn();
}
}else {
addmx();
addmn();
}
bef = now;
}
for(int i = 1; i <= p; i++) {
cout << A[i] << " ";
}
cin >> N;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
5 ms |
384 KB |
Output is correct |
2 |
Correct |
4 ms |
384 KB |
Output is correct |
3 |
Correct |
5 ms |
384 KB |
Output is correct |
4 |
Correct |
5 ms |
384 KB |
Output is correct |
5 |
Correct |
5 ms |
384 KB |
Output is correct |
6 |
Correct |
5 ms |
384 KB |
Output is correct |
7 |
Correct |
5 ms |
384 KB |
Output is correct |
8 |
Correct |
5 ms |
384 KB |
Output is correct |
9 |
Correct |
5 ms |
384 KB |
Output is correct |
10 |
Correct |
5 ms |
384 KB |
Output is correct |
11 |
Correct |
5 ms |
384 KB |
Output is correct |
12 |
Correct |
5 ms |
384 KB |
Output is correct |
13 |
Correct |
5 ms |
384 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
5 ms |
384 KB |
Output is correct |
2 |
Correct |
6 ms |
512 KB |
Output is correct |
3 |
Correct |
7 ms |
640 KB |
Output is correct |
4 |
Correct |
14 ms |
744 KB |
Output is correct |
5 |
Correct |
14 ms |
1280 KB |
Output is correct |
6 |
Correct |
24 ms |
2176 KB |
Output is correct |
7 |
Correct |
38 ms |
3320 KB |
Output is correct |