RE 求助
查看原帖
RE 求助
209825
cd2020楼主2020/10/2 21:52
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int maxn=2e5+10;
queue<ll>q1,q2,q3;
ll a[maxn],n,m,q,u,v,t;
int main()
{
	cin>>n>>m>>q>>u>>v>>t;
	double p=(double)(u*1.0/(double)v);
	for(int i=1;i<=n;i++) cin>>a[i];
	sort(a+1,a+n+1);
	for(int i=n;i>=1;i--)q1.push(a[i]);
	ll cnt=1;
	if(m!=0)
	{
	q1.pop();
	if(cnt%t==0)cout<<a[n]<<" ";
	q2.push(max((ll)(p*a[n]),a[n]-(ll)(p*a[n]))-q);
	q3.push(min((ll)(p*a[n]),a[n]-(ll)(p*a[n]))-q);
	}
	double maxx,x,y,z;	
	for(int i=2;i<=m;i++)
	{
		cnt++;
		x=q1.size()>0?q1.front():-0x7fffff;
		y=q2.size()>0?q2.front():-0x7fffff;
		z=q3.size()>0?q3.front():-0x7fffff;
		maxx=max(x,max(y,z));
		if(maxx==x)q1.pop();
			else if(maxx==y)q2.pop();	
				else q3.pop();
		maxx+=q*(i-1); 
		if(cnt%t==0)cout<<(int)maxx<<" ";
		q2.push(max(floor(p*maxx),(ll)maxx-floor(p*maxx))-q*i);
		q3.push(min(floor(p*maxx),(ll)maxx-floor(p*maxx))-q*i);
	}
	cout<<endl;
	
	cnt=0;
	while(q1.size()||q2.size()||q3.size())
	{
		cnt++;
		x=q1.size()>0?q1.front():-0x7ffffff;
		y=q2.size()>0?q2.front():-0x7ffffff;
		z=q3.size()>0?q3.front():-0x7ffffff;
		maxx=max(x,max(y,z));
		if(maxx==x)q1.pop();
			else if(maxx==y)q2.pop();	
				else q3.pop();
		if(cnt%t==0)cout<<(ll)(maxx+q*m)<<" ";
	}
	return 0;
}





2020/10/2 21:52
加载中...