Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 396 Solved: 139
Description
给你一个长度是n的序列A,然后,有m次询问,每次询问是一个数字X,请你告诉我X在序列A中有多少个数是不大于它的
Input
第一行 ,n,m,(n,m<=100000)
第二行n个数(每个数<=1000)
第三行m个数
Output
输出答案
Sample Input
5 4 2 5 4 3 5 2 5 8 9
Sample Output
1 5 5 5
HINT
Source
题解:记录一下upper_bound()函数的用法,返回第一个比查找数字大的函数
代码:
#include<iostream>
#include<stdio.h>
#include<algorithm>
using namespace std;
int a[100005];
int main()
{
int n,m,i,ans;
while(~scanf("%d%d",&n,&m))
{
for(int i=0; i<n; i++)
scanf("%d",&a[i]);
sort(a,a+n);
while(m--)
{
int tmp;
scanf("%d",&tmp);
printf("%d\n",upper_bound(a,a+n,tmp)-a);
}
}
return 0;
}