Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- int upper(int x,int n,int a[])
- {
- int left=0,right=n-1,mid,ans;
- while(left<=right)
- {
- mid=(left+right)/2;
- if(a[mid]>x)
- {
- ans=mid;
- right=mid-1;
- }
- else{
- left=mid+1;
- }
- }return ans;
- }
- int lower(int x,int n,int a[])
- { int left=0,right=n-1,mid,ans;
- while(left<=right)
- {
- mid=(right+left)/2;
- if(a[mid]<x)
- {
- ans=mid;
- left=mid+1;
- }
- else{
- right=mid-1;
- }
- }
- return ans;
- }
- int main()
- {
- int n,q,qu;
- cin>>n;
- int ar[n];
- for(int i=0;i<n;i++)
- {
- cin>>ar[i];
- }
- cin>>q;
- for(int j=0;j<q;j++)
- {
- cin>>qu;
- if(n==1){if(qu==ar[0])cout<<"X "<<"X"<<endl;
- else if(qu<ar[0])cout<<"X "<<ar[0]<<endl;
- else if(qu>ar[n-1])cout<<ar[0]<<" X"<<endl;
- }
- else{
- if(qu<=ar[0])cout<<"X ";
- else
- {int left;
- left=lower(qu,n,ar);
- cout<<ar[left]<<" ";}
- if(qu>=ar[n-1])cout<<"X"<<endl;
- else
- {int right;
- right=upper(qu,n,ar);
- cout<<ar[right]<<endl;}
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement