0
点赞
收藏
分享

微信扫一扫

Acwing--789. 数的范围(二分)

其生 2022-01-08 阅读 52
#include<bits/stdc++.h>
using namespace std;
const int N=100010;
int q[N];

int main()
{
    int n,m;
    cin>>n>>m;
    for(int i=0;i<n;i
        cin>>q[i];
    }
    int x;
    while(m--)
    {
        cin>>x;
        int l=0,r=n-1;
        while(l<r)
        {
            int mid=(l+r)/2;
            if(q[mid]>=x)
            {
                r=mid;
            }
            else
            l=mid+1;
        }//停下来之后左端点即为答案
        if(q[l]!=x)
        {
            cout<<"-1 -1"<<endl;
        }
        else
        {
        	cout<<l<<" ";
            l=0,r=n-1;
            while(l<r)
            {
            	int mid=(l+r+1)/2;
            	if(q[mid]<=x)
            	{
            		l=mid;
				}
				else
				r=mid-1;
			}
			cout<<r<<endl;
			
        }
    
    }
    return 0;
}
举报

相关推荐

0 条评论