奇怪的二十分,其它全WA
查看原帖
奇怪的二十分,其它全WA
294736
bovine__kebi楼主2020/5/1 19:47

RT,真的没找出错哪里了(=@__@=)

#include<bits/stdc++.h>
using namespace std;
const int maxn=2*1e5+5;
inline long long read()								 
{
	long long x=0,f=1;
	char ch=getchar();
	while(ch<'0'||ch>'9')
	{
		if(ch=='-')
		{
			f=-1;
		}
		ch=getchar();
	}
	while(ch>='0'&&ch<='9')
	{
		x=(x<<1)+(x<<3)+(ch^48);
		ch=getchar();
	}
	return x*f;
}
long long n,L,v;
long long T;
long long q[maxn];
long long a[maxn];
long long m[maxn];
bool cmp(long long a,long long b)
{
	return a>b;
}
int main()
{
	//freopen("endless.in","r",stdin);
	//freopen("endless.out","w",stdout);
	n=read();
	L=read();
	v=read();
	for(long long i=1;i<=n;i++)
	{
		a[i]=read();
	}
	sort(a+1,a+n+1,cmp);
	m[0]=0;
	for(register long long i=1;i<=n;i++)
	{
		m[i]=m[i-1]+a[i];
	}
	T=read(); 
	for(register long long i=1;i<=T;i++)
	{
		q[i]=read();
		q[i]=q[i]*v-L;
		if(q[i]<0){printf("0\n");}
		else if(m[i]>q[i])
		{
			printf("%lld\n",upper_bound(m+1,m+n+1,q[i])-m);
		}
		else 
		printf("-1\n"); 
	}
	return 0;
}
2020/5/1 19:47
加载中...