这道题的目的很明显, 就是桶, 当然100,000的数据O(nlogn)的排序也是能做的.
#include<iostream>
using namespace std;
int n,q;
int A[5001];
char s[10];
int query(int p)
{
int i,temp=0;
for(i=1;i<5001;i++)
{
if(temp+A[i]<p) temp+=A[i];
else return i;
}
}
int main()
{
int i,j;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&j);
A[j]++;
}
scanf("%s",s);
scanf("%d",&q);
for(i=0;i<q;i++)
{
scanf("%d",&j);
printf("%d/n",query(j));
}
return 0;
}