描述
小祖是一个爱冒险的猴子,一天它来到一个村庄,顿时,有n(1<=n<=100000)个小怪冒了出来,想把它吃了,每个小怪都有它的体力值hp(1<=hp<=maxlongint)。小祖手上有m(1<=m<=100000)个炸弹,每个炸弹威力为k(1<=k<=maxlongint),可以炸死体力小于炸弹威力所有小怪。现在它想知道,它的每一个炸弹能炸剩多少个小怪(他只担心活的小怪>_<),请你编一个程序帮助它吧。
输入描述
第一行,输入一个n,代表有n个小怪n(1<=n<=100000) 第二行,有n个数,代表每个小怪的体力值hp(1<=hp<=maxlongint) 第三行,输入一个m,代表有m个炸弹m(1<=m<=100000) 接下来m行,每行一个数,代表每个炸弹威力k(1<=k<=maxlongint)
输出描述
有m行,每行一个数代表它的每一个炸弹能炸剩多少个小怪。
小编的话:个人认为小祖有病。
用例输入 1
5
1 2 2 2 3
3
2
1
3
用例输出 1
4
5
1
小编的话:看这经典的样例格式,直接上模板~~~
#pragma GCC optimize(1)
#pragma GCC optimize(2)
#pragma GCC optimize(3)
#pragma GCC optimize(4)
#pragma GCC optimize(s)
#pragma GCC optimize(fast)//请忽略它们
#include<bits/stdc++.h>
using namespace std;
int n,g,x,a[100005];
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)scanf("%d",&a[i]);
sort(a+1,a+n+1);//排序,非常重要
scanf("%d",&g);
while(g--)//好戏开场,上模板
{
scanf("%d",&x);
int L=0,R=n+1;
while(L+1<R)
{
int mid=(L+R)/2;
if(a[mid]<x)L=mid;
else R=mid;
}
printf("%d\n",n-L);//华丽收场
}
return 0;
}
//如果你的二分模板和小编的不一样,私信我并将它发给我~~
小编的话:感谢您的阅读,如果不对,请第一时间找我~~~