不吸氧 #2~6 #9~11 #13~14 #20 WA 其余 AC
#include <bits/stdc++.h>
using namespace std;
const int maxn=1e5;
const int maxm=7e6;
const int mininf=INT_MIN;
const int maxinf=INT_MAX;
#define int long long
int n,m,q,t,a[maxn],u,v;
queue<int> qiu1,qiu2,qiu3;
signed main()
{
cin>>n>>m>>q>>u>>v>>t;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
sort(a+1,a+n+1,[](int a,int b)->bool{return a>b;});//排序
for(int i=1;i<=n;i++)
{
qiu1.push(a[i]);
}//队列初始化
for(int now=0,zzz2;now<m;now++)
{
pair<int,int>zzz;
zzz.first=mininf;
zzz.second=1;
if(!qiu1.empty()&&qiu1.front()>zzz.first)
{
zzz.first=qiu1.front();
zzz.second=1;
}
if(!qiu2.empty()&&qiu2.front()>zzz.first)
{
zzz.first=qiu2.front();
zzz.second=2;
}
if(!qiu3.empty()&&qiu3.front()>zzz.first)
{
zzz.first=qiu3.front();
zzz.second=3;
}
zzz.first+=q*now;//真实值
switch(zzz.second)
{
case 1:
qiu1.pop();
break;
case 2:
qiu2.pop();
break;
case 3:
qiu3.pop();
break;
}
zzz2=zzz.first*((long double)u/(long double)v);/*p 系数*/
qiu2.push(zzz2-q*(now+1));//-q*(now+1) 求偏移值
qiu3.push((zzz.first-zzz2)-q*(now+1));//-q*(now+1) 求偏移值
if(now%t==t-1)
cout<<zzz.first<<' ';
}
cout<<endl;
for(int i=1;i<=n+m;i++)
{
pair<int,int>zzz;
zzz.first=mininf;
zzz.second=0;
if(!qiu1.empty()&&qiu1.front()>zzz.first)
{
zzz.first=qiu1.front();
zzz.second=1;
}
if(!qiu2.empty()&&qiu2.front()>zzz.first)
{
zzz.first=qiu2.front();
zzz.second=2;
}
if(!qiu3.empty()&&qiu3.front()>zzz.first)
{
zzz.first=qiu3.front();
zzz.second=3;
}
zzz.first+=q*m;//真实值
switch(zzz.second)
{
case 1:
qiu1.pop();
break;
case 2:
qiu2.pop();
break;
case 3:
qiu3.pop();
break;
}
if(i%t==0)
cout<<zzz.first<<' ';
}
cout<<endl;
return 0;
}