Submission #21863

# Submission time Handle Problem Language Result Execution time Memory
21863 2017-04-26T14:09:12 Z iletavcioski medians (balkan11_medians) C++
100 / 100
49 ms 3388 KB
#include<iostream>
#include<vector>
using namespace std;
bool visi[200002];
int A[200002];
int B[100001];
int main()
{
	int n;
	cin>>n;
	int maxi=2*n;
	int mini=0;
	visi[2*n]=true;
	visi[0]=true;
	for(int i=1;i<=n;i++)
	{
		int a;
		cin>>a;
		B[i]=a;
	}
	visi[B[1]]=true;
	A[1]=B[1];
	for(int i=2;i<=n;i++)
	{
		if(B[i]==B[i-1])
		{
			while(visi[mini])
				mini++;
			while(visi[maxi])
				maxi--;
			visi[maxi]=true;
			visi[mini]=true;
			A[2*i-2]=mini;
			A[2*i-1]=maxi;
		}
		else if(B[i]>B[i-1])
		{
			if(!visi[B[i]])
			{
				A[2*i-2]=B[i];
				visi[B[i]]=true;
				while(visi[maxi])
					maxi--;
				visi[maxi]=true;
				A[2*i-1]=maxi;
			}
			else
			{
				while(visi[maxi])
					maxi--;
				visi[maxi]=true;
				A[2*i-2]=maxi;
				while(visi[maxi])
					maxi--;
				visi[maxi]=true;
				A[2*i-1]=maxi;
			}
		}
		else if(B[i]<B[i-1])
		{
			if(!visi[B[i]])
			{
				A[2*i-2]=B[i];
				visi[B[i]]=true;
				while(visi[mini])
					mini++;
				visi[mini]=true;
				A[2*i-1]=mini;
			}
			else
			{
				while(visi[mini])
					mini++;
				visi[mini]=true;
				A[2*i-2]=mini;
				while(visi[mini])
					mini++;
				visi[mini]=true;
				A[2*i-1]=mini;
			}
		}
	}
	for(int i=1;i<=2*n-1;i++)
	{
		if(i!=1)
			cout<<" ";
		cout<<A[i];
	}
	cout<<endl;
	return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 3388 KB Output is correct
2 Correct 0 ms 3388 KB Output is correct
3 Correct 0 ms 3388 KB Output is correct
4 Correct 0 ms 3388 KB Output is correct
5 Correct 0 ms 3388 KB Output is correct
6 Correct 0 ms 3388 KB Output is correct
7 Correct 0 ms 3388 KB Output is correct
8 Correct 0 ms 3388 KB Output is correct
9 Correct 0 ms 3388 KB Output is correct
10 Correct 0 ms 3388 KB Output is correct
11 Correct 0 ms 3388 KB Output is correct
12 Correct 0 ms 3388 KB Output is correct
13 Correct 0 ms 3388 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 3388 KB Output is correct
2 Correct 0 ms 3388 KB Output is correct
3 Correct 3 ms 3388 KB Output is correct
4 Correct 6 ms 3388 KB Output is correct
5 Correct 19 ms 3388 KB Output is correct
6 Correct 33 ms 3388 KB Output is correct
7 Correct 49 ms 3388 KB Output is correct