通过容忍限度得出小鸡能从后往前插队几个人

#include <algorithm>

using namespace std;

long long int n,q,tc,m,a[100010],b[100010],c[100010];

int main()
{
	scanf("%lld %lld %lld",&n,&q,&tc);
	for (int i=1;i<=n;i++) scanf("%lld",&a[i]);
	sort(a+1,a+n+1);
	for (int i=1;i<=n;i++) {
		b[i]=a[i]+b[i-1];
		c[i]=c[i]+b[i];
	}
	while (q--) {
		scanf("%lld",&m);
		if (m<tc) printf("%lld\n",b[n]+tc);
		else if (m>n*tc) printf("%lld\n",tc);
		else printf("%lld\n",b[n-m/tc]+tc);
	}
	
	return 0;
}