Problem W: 二分查找(数据量较大)

Memory Limit:128 MB Time Limit:1.000 S
Judge Style:Text Compare Creator:
Submit:15 Solved:8

Description

输入n个(n<=1000000)从小到大排序好的整数,输入一个数x,用二分查找算法,找出该数字的位置。

Input

第1行一个数字n,表示有n个整数
第2行10个整数,按从小到大的顺序输入,中间以空格分隔
第3行一个整数,表示要查找的数据。

Output

一行,若存在则输出位置,若不存在则输出"not find"

Sample Input Copy

5
1 2 3 4 5
4

Sample Output Copy

4

HINT

在算法竞赛中,我们经常能看到很多人写的代码中main()函数中第一行代码为:

ios::sync_with_stdio(0);

cin.tie(0);

cout.tie(0);

主要用途是在涉及到大量数据输入输出时,如输入的数据量达到100000以上时,C++中关闭输入输出流的同步,可以提高程序的执行效率。

注意:

关闭了同步流,就不能使用scanf,printf,getchar();

不能再用cout<<endl,而应该改用cout<<‘\n’。



示例:

#include<bits/stdc++.h>
using namespace std;
int main()
{
ios::sync_with_stdio(0);//关闭输入输出同步流
cin.tie(0);
cout.tie(0);
int n,a[100000];
cin>>n;
for(int i=1;i<=n;i++)
  cin>>a[i];

for(int i=1;i<=n;i++)
  cout<<a[i];
return 0;
}

Source/Category