有关找数的问题!提交提示Time Limit Exceeded,求大神修改!!
现在给你n个数,这n个数从小到大递增,然后问你某个数是不是在这n个数里面输入
第一行一个n
然后是n个从小到大排列的数
然后输入一个m表示接下来有m个询问,接下来m行每行一个数,问你这个数在不在刚才给的那些数里面
1=< n <= 1000000 , 1=<m<=100000,其他数都是int型范围内的数
输出
对于每个询问,如果询问的数在所给的数里面,就输出yes,否则输出no
Input
5
1 2 5 6 10
3
2
5
7
Output
yes
yes
no
#include<stdio.h>
int main()
{
int n, m, a[1000000], i, j, k,p;
while (scanf_s("%d", &n) != EOF)//n为数组个数
{
for (i = 0; i < n; i++)
{
scanf_s("%d", &a[i]);//输入数组元素
}
while (scanf_s("%d", &m) != EOF)//m为可以查找的次数
{
for (j = 0; j < m; j++)
{
scanf_s("%d", &p);//p为你要查找的数
for (k = 0; k < n; )
{
if (a[k] == p)
break;
else
k++;
}
if (a[k]!=p)
printf("no\n");
else
printf("yes\n");
}
}
}
return 0;
}