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