救一下
查看原帖
救一下
130611
LightHouseAC楼主2021/11/14 23:45

这个为什么全WA了

#include<bits/stdc++.h>
using namespace std;
inline int read(){
	int data=0,w=1;char ch=0;
	while(ch!='-' && (ch<'0'||ch>'9'))ch=getchar();
	if(ch=='-')w=-1,ch=getchar();
	while(ch>='0' && ch<='9')data=data*10+ch-'0',ch=getchar();
	return data*w;
}
#define ll long long
const int N=1e5+10;
int n,q,t,a[N];
ll sum[N];
double avg;
int main(){
	t=read();
	while(t--){
		n=read();q=read();
		for(int i=1;i<=n;i++)
			a[i]=read();
		sort(a+1,a+n+1);
		for(int i=1;i<=n;i++)
			sum[i]=sum[i-1]+a[i];
		while(q--){
			int x=read();
			avg=sum[n]/n*1.0;
			int pos,lst=1;
			while(1){
				int val=int(avg-x+0.5);
				pos=lower_bound(a+lst,a+n+1,val)-a;
				if(pos==lst)break;
				avg=(sum[n]-sum[pos-1])/(n-pos+1)*1.0;
				lst=pos;
			}
			printf("%d ",n-lst+1);
		}
		puts("");
	}
	return 0;
}
2021/11/14 23:45
加载中...