/*The Intervals 二分查找
2008-09-03 19:49:57 Accepted 2029 C++ 00:00.01 848K 天将降大任于我
先对a[]排序,然后用二分查找法查出b[i]在a[]中的位置
*/
#include<iostream>
#include<algorithm>
using namespace std;
const int N=1000;
int a[N+1],b[N+1];
bool cmp(int x,int y)
{
return x<y;
}
int main()
{
int n,m,k,i,j,mid,t=0;
while(scanf("%d%d",&n,&m)!=EOF)
{
for(i=0;i<n;i++) scanf("%d",&a[i]);
for(i=0;i<m;i++) scanf("%d",&b[i]);
sort(a,a+n,cmp);
for(k=0;k<m;k++)
{
if(b[k]<a[0]||b[k]>=a[n-1]) {printf("no such interval\n");continue;} //当b[k]==a[0]时可以,但是当b[k]==a[n-1]时不符合,因为括号为[),不包括右端点
i=0;j=n-1;
while(i<j-1) //循环条件为i<j-1,如为i<j则死循环
{ mid=(i+j)/2;
if(a[mid]>b[k]) j=mid;
else i=mid; //当a[mid]<=b[k],两种情况都要有,否则当b[]中有和a[]中相等的元素则无法输出
}
printf("[%d,%d)\n",a[i],a[j]);
}
printf("\n");
}
return 0;
}
心难泰,世风坏,旧时正气今何在?正义寡,人情薄,闻道虽多,茅塞不开。怪!怪!怪!
空等待,几多载,冲出重围人心快!暴雨打,狂风袭,任他折磨,此志难改。耐!耐!耐!