时间限制:1秒 内存限制:128M
题目描述
给定一个n,再给定n个数,从小到大排列,给定一个x,说出小于等于x的最大的数。
输入描述
输入两行,第一行两个数分别是n,x。(1 <= n <= 1000000)
第二行有n个数。
输出描述
输出一个数,即答案。
样例
输入
7 3 1 1 2 2 3 5 9
输出
3
AC Code:
#include<bits/stdc++.h>
using namespace std;
int n,a[1000005],x;
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin>>n>>x;
for(int i=1;i<=n;i++){
cin>>a[i];
}
sort(a+1,a+1+n);
int L,R,mid;
L=1; R=n;
while (L<R) {
mid =(L+R+1)/2;
if (a[mid]<=x) {
L=mid;
}
else{
R = mid-1;
}
}
cout<<a[L];
return 0;
}

3571

被折叠的 条评论
为什么被折叠?



