题意 给一个无重复元素的序列,找数x是否属于它,若属于给出x在其中是第几大的。
思路 本来这题应该是让我们练习一下用快排思想用O(n)的算法找x是第几大的,不过先排序在二分也能解决,所以我一懒就用STL了.....就当练练STL使用了....
#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;
const int maxn = 1000005;
int a[maxn];
int n,b;
int main()
{
scanf("%d%d",&n,&b);
for(int i =0;i<n;i++)
scanf("%d",&a[i]);
sort(a,a+n);
int i = lower_bound(a,a+n,b) - a;
if(a[i] != b)
cout<<"-1\n";
else
cout<<i+1<<endl;
return 0;
}