85分求助,WA #11 #13 #17
查看原帖
85分求助,WA #11 #13 #17
658786
STUDENT00楼主2022/8/25 17:10

评测记录:https://www.luogu.com.cn/record/85095907

代码如下:

#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m,q,u,v,t,a[100010],b[8000000],sum,k;
queue<int> q1,q2,q3;
bool cmp(int a,int b){
	return a>b;
}
main(){
	scanf("%lld%lld%lld%lld%lld%lld",&n,&m,&q,&u,&v,&t);
	for(int i=1;i<=n;i++) scanf("%lld",&a[i]);
	sort(a+1,a+n+1,cmp);
	for(int i=1;i<=n;i++) q1.push(a[i]);
	for(int i=1;i<=m;i++){
		int maxs=0;
		if(!q1.empty()&&q1.front()>maxs) maxs=q1.front();
		if(!q2.empty()&&q2.front()>maxs) maxs=q2.front();
		if(!q3.empty()&&q3.front()>maxs) maxs=q3.front();
		if(!q1.empty()&&q1.front()==maxs) q1.pop();
		else if(!q2.empty()&&q2.front()==maxs) q2.pop();
		else q3.pop();
		maxs+=sum;
		if(i%t==0) printf("%lld ",maxs);
		int x=maxs*u/v,y=maxs-x;
		sum+=q;
		x-=sum;
		y-=sum;
		q2.push(x);
		q3.push(y);
	}
	while(!q1.empty()){
		b[++k]=q1.front()+sum;
		q1.pop();
	}
	while(!q2.empty()){
		b[++k]=q2.front()+sum;
		q2.pop();
	}
	while(!q3.empty()){
		b[++k]=q3.front()+sum;
		q3.pop();
	}
	printf("\n");
	sort(b+1,b+k+1,cmp);
	for(int i=1;i<=k;i++){
		if(i%t==0) printf("%lld ",b[i]);
	}
	return 0;
}
2022/8/25 17:10
加载中...