task3的报错看不懂,救命
查看原帖
task3的报错看不懂,救命
186545
痕心楼主2021/11/19 13:54
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=500100;
int n,q,ans[N];
double a[N],avg[N];
struct node{
	int k,num;
}pr[N];
bool cmp(int a,int b){
	return a>b;
}
bool cmpy(node x,node y){
	return x.k>y.k;
}
void solve(){
	scanf("%d%d",&n,&q);
	memset(ans,0,sizeof(ans));
	for(int i=1;i<=n;i++){
		scanf("%lf",&a[i]);
	}
	for(int i=1;i<=q;i++){
		scanf("%d",&pr[i].k);
		pr[i].num=i;
	}
	sort(a+1,a+n+1,cmp);
	sort(pr+1,pr+q+1,cmpy);
	for(ll i=1;i<=n;i++){
		avg[i]=(avg[i-1]*(double)(i-1)+a[i])/(double)i;
	}
	int now=1;
	for(int i=n;i>=1&&now<=q;i--){
		while(avg[i]-(double)pr[now].k<=a[i]&&now<=q){
			ans[pr[now].num]=i;
			now++;
		}
	}
	for(int i=1;i<=q;i++)printf("%d ",ans[i]);
	puts("");
}
int main(){
	int t;
	scanf("%d",&t);
	while(t--){
		solve();
	}
	return 0;
}

评测结果 https://www.luogu.com.cn/record/62465136

2021/11/19 13:54
加载中...