WA求助
查看原帖
WA求助
228788
ChangYiMing楼主2020/4/30 21:15
#include <stdio.h>
#include <algorithm>
#define ll long long
#define MAXN 200005
using namespace std;

int read(){
	int a1=0,k1=1;char c1=getchar();
	while(c1<'0'||c1>'9'){
		if(c1=='-')k1=-1;c1=getchar();
	}
	while(c1>='0'&&c1<='9'){
		a1=a1*10+c1-'0';
		c1=getchar();
	}
	return a1*k1;
}
inline void out1(ll n) {
	if(n < 0)
		putchar ('-') , n = -n;
	if(n > 9)
		out1(n / 10);
	putchar(n % 10 + '0');
}
inline void out(ll n){
	out1(n);printf("\n");
}
int magic[MAXN],f[MAXN],qu[MAXN];
int/*signed*/ main(){
	freopen("endless.in","r",stdin);
	freopen("endless.out","w",stdout);
	int n=read(),l=read(),v=read(),q,sb,mx=-1,n1=0;
	for(int i=1;i<=n;++i){
		magic[i]=read();
	}
	sort(magic+1,magic+1+n);
	q=read();
	for(int i=1;i<=q;++i){
		qu[i]=read();qu[i]*=v;
		mx=qu[i]>mx?qu[i]:mx;
	}
//	sort(qu+1,qu+1+q);
	f[0]=l;
	for(int i=1;i<=n;++i){
		f[i]=f[i-1]+magic[n-i+1];
		if(f[i]>mx){
			n1=i;printf("%d\n",i);
			break;
		}
	}
	if(!n1)n1=n;
//	for(int i=0;i<=n;++i){
//		printf("%d ",f[i]);
//	}
//	printf("\n%d %d\n",n,n1);
	for(int i=1;i<=q;++i){
		int emm=upper_bound(f,f+n+1,qu[i])-f;
		if(emm>n1)emm=-1;
//		printf("%d  ",qu[i]);
//		printf("%d\n",emm!=-1?f[emm]:-1);
		printf("%d\n",emm);
	}
	return 0;
}
2020/4/30 21:15
加载中...