本题题意是输入n个数,然后再输入m个数,让每个数都与n个数比较,有多少个大于这n个数的
dp
#include <iostream>
#include<string.h>
using namespace std;
int main()
{
int n,m,k,i,kl,maxm=0;
int a[100000];
int dp[100000];
memset(dp,0,sizeof(dp));
cin>>n;
for(i=1;i<=n;i++)
{
cin>>kl;
if(kl>maxm)
{
maxm=kl;
}
a[kl]++;
}
dp[1]=a[1];
for(int j=2;j<=maxm;j++)
{
dp[j]=dp[j-1]+a[j];
}
cin>>m;
while(m--)
{
cin>>k;
if(k>=maxm)
{
cout<<dp[maxm]<<endl;
}
else
{
cout<<dp[k]<<endl;
}
}
return 0;
}