65pts求助
查看原帖
65pts求助
338147
01bit楼主2021/2/23 12:44
#include<iostream>
#include<vector>
#include<algorithm>
int n,m,q,u,v,t;
int a[5000001],c1[5000001],c2[5000001];
int ans[5000001],at=0,sum=0;
int h0=0,h1=0,h2=0,t0=0,t1=0,t2=0;
struct _cmp{
	bool operator()(int a,int b){
		return a>b;
	}
}cmp;
int main(){
	std::ios::sync_with_stdio(false);
	std::cin>>n>>m>>q>>u>>v>>t;
	for(int i=1;i<=n;i++)std::cin>>a[t0++];
	std::sort(a+h0,a+t0,cmp);
	for(int i=1;i<=m;i++){
		int x;
		if(h0>t0){if(c1[h1]>c2[h2])x=c1[h1++];else x=c2[h2++];}
		else if(a[h0]>=c1[h1]&&a[h0]>=c2[h2])x=a[h0++];
		else if(c1[h1]>c2[h2]&&c1[h1]>=a[h0])x=c1[h1++];
		else x=c2[h2++];
		x+=sum;
		int x1=u*x/v,x2=x-x1;
		sum+=q;
		x1-=sum;x2-=sum;
		c1[t1++]=x1;c2[t2++]=x2;
		if(i%t==0)std::cout<<x<<" ";
	}
	std::cout<<std::endl;
	for(int i=h0;i<t0;i++)ans[at++]=a[i];
	for(int i=h1;i<t1;i++)ans[at++]=c1[i];
	for(int i=h2;i<t2;i++)ans[at++]=c2[i];
	std::sort(ans,ans+at,cmp);
	for(int i=0;i<at;i++)
		if((i+1)%t==0)std::cout<<ans[i]+sum<<" ";
	return 0;
}
2021/2/23 12:44
加载中...