大理石在哪兒
現有N個大理石,每個大理石上寫了一個非負整數、首先把各數從小到大排序
然後回答Q個問題。每個問題問是否有一個大理石寫着某個整數x,如果是,還要
回答哪個大理石上寫着x。排序後的大理石從左到右編號爲1~N。(在樣例中,爲了
節約篇幅,所有大理石的數合併到一行,所有問題也合併到一行。)
樣例輸入:
4 1
2 3 5 1
5
5 2
1 3 3 3 1
2 3
樣例輸出:
CASE# 1:
5 found at 4
CASE# 2:
2 not found
3 found at 3
#include <iostream>
#include <algorithm>
using namespace std;
#define maxn 1000
int main()
{
int n,q,x,kase = 0;
int a[maxn];
while(scanf("%d%d",&n,&q) == 2 && n)
{
printf("CASE# %d:\n",++kase);
for(int i = 0; i < n; i++)
{
scanf("%d",&a[i]);
}
sort(a, a + n);
while(q--)
{
scanf("%d",&x);
int p = lower_bound(a, a + n, x) - a;
if(a[p] == x)
{
printf("%d found at %d\n", x, p + 1);
}
else
{
printf("%d not found\n",x);
}
}
}
return 0;
}