Submission #119932

#TimeUsernameProblemLanguageResultExecution timeMemory
119932tutismedians (balkan11_medians)C++17
5 / 100
99 ms12008 KiB
/*input
5
1 3 3 4 5
*/
#pragma GCC optimize ("O3")
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;
int main()
{
	ios_base::sync_with_stdio(false);
	int n;
	cin >> n;
	int m[n];
	for (int i = 0; i < n; i++)
		cin >> m[i];
	set<int>nebus;
	for (int i = 1; i <= 2 * n - 1; i++)
		nebus.insert(i);
	for (int i = 0; i < n; i++)
		nebus.erase(m[i]);
	deque<int>answer;
	for (int i = n - 1; i > 0; i--)
	{
		if (m[i] == m[i - 1])
		{
			answer.push_front(*nebus.begin());
			nebus.erase(nebus.begin());
			answer.push_front(*(--nebus.end()));
			nebus.erase(--nebus.end());
		}
		else
		{
			nebus.insert(m[i]);
			if (m[i] > m[i - 1])
			{
				answer.push_front(*(--nebus.end()));
				nebus.erase(--nebus.end());
				answer.push_front(*(--nebus.end()));
				nebus.erase(--nebus.end());
			}
			else
			{
				answer.push_front(*nebus.begin());
				nebus.erase(nebus.begin());
				answer.push_front(*nebus.begin());
				nebus.erase(nebus.begin());
			}
		}
	}
	answer.push_front(m[0]);
	for (int i : answer)
		cout << i << " ";
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...