「模版」二分查找(lower_bound )

发布时间 2023-07-02 16:52:57作者: nasia
七彩评测

image
image

题目描述

给出有 n个元素的由小到大的序列,请你编程找出某元素第一次出现的位置。(n<=1000000)

Input

第一行:一个整数,表示由小到大序列元素个数:下边 n行,每行一个整数:最后一行一个整数 x,表示待查找的元素。

Output

如果 x 在序列中,则输出 x 第一次出现的位置,否则输出 -1.

样例输入

5
3
5
6
6
7
6

样例输出

3

code:

#include <bits/stdc++.h>
using namespace std;
int n,a[1000001],l,m,r,t;
int main(){
	cin>>n;
	for(int i = 1;i<=n;i++) scanf("%d",&a[i]);
	cin>>t;
	for(int i = 1;i<=n;i++){
		if(a[i] == t) {cout<<i;exit(0);}
	}
	cout<<-1;
	return 0;
}