10611

#include <iostream>
#include <cstdio>
#include <cstring>

using namespace std;

int arr[50005];

int binSearch(int num,int lw,int hi)
{
	int mid;
	while(lw<hi)
	{
		mid = (hi+lw)/2;

		if(num<arr[mid])
			hi = mid;
		else if(num>=arr[mid])
			lw = mid+1;

	}
	return hi;
}

int main()
{
	int N,Q,a;
	int len,qry,idx;
	while(scanf("%d",&N)!=EOF)
	{
		scanf("%d",&arr[0]);
		len = 1;
		for(int i=1;i<N;i++)
		{
			scanf("%d",&a);
			if(a!=arr[len-1])
			{
				arr[len]=a;
				len +=1;
			}
		}
		scanf("%d",&Q);
		for(int i=0;i<Q;i++)
		{
			scanf("%d",&qry);
			if(qry<arr[0])
			{
				printf("X %d\n",arr[0]);
			}
			else if(qry==arr[0])
			{
				printf("X");
				if(len>1)
				printf(" %d\n",arr[1]);
				else
				printf("X\n");
			}
			else if(qry==arr[len-1])
                        {
                                printf("%d X\n",arr[len-2]);
                        }
			else if(qry>arr[len-1])
			{
				printf("%d X\n",arr[len-1]);
			}
			else
			{
				idx = binSearch(qry,0,len-1);
				if(arr[idx-1]==qry)
				{
					if(idx>=2)
					printf("%d %d\n",arr[idx-2],arr[idx]);
					else
					printf("X %d\n",arr[idx]);
				}
				else if(arr[idx-1]!=qry)
					printf("%d %d\n",arr[idx-1],arr[idx]);
			}
		}

	}
	return 0;
}

 

Leave a Reply

Your email address will not be published. Required fields are marked *