#include<bits/stdc++.h>
using namespace std;
int a[10000]={1,2,3,4,4,4,4,7,8,9,10};
//无重复找单个特定值
int find(int l,int r,int x)
{
while(l<=r)
{
int m=(l+r)/2;
if(a[m]>x)
r=m-1;
else if(a[m]<x)
l=m+1;
else
return m;
}
return -1;
}
//有重复找第一个
int find(int l,int r,int x)
{
while(l<r)//<=怎么不行?试试
{
int m=(l+r)/2;
if(a[m]<x)
l=m+1;
else
r=m;
}
if(a[l]==x)
return l;
return -1;
}
//有重复找最后一个
int find(int l,int r,int x)
{
while(r-l>=2)
{
int m=(l+r)/2;
else if(a[m]<=x)
l=m;
else
r=m;
}
if(a[r]==x)
return r;
else if(a[l]==x)
return l;
else
return -1;
}