#include<bits/stdc++.h>
#define rep(i,j,k) for(register int i(j);i<=k;++i)
using namespace std;
const int MAXX=100000000;
inline void read(int &x)
{
x=0;
int w=0;
register char ch=getchar();
while(ch>'9'||ch<'0')
{
ch=getchar();
w|=ch=='-';
}
while (ch>='0'&&ch<='9')
{
x=x*10+ch-48;
ch=getchar();
}
w?x=~(x-1):x;
}
inline int max(int a,int b)
{
return a>b?a:b;
}
queue<int> date;
queue<int> a,b;
int n,m,q,u,v,t;
int f[MAXX];
int tot;
double p;
int main()
{
// freopen("earthworm.in","r",stdin);
// freopen("earthworm.out","w",stdout);
read(n);
read(m);
read(q);
read(u);
read(v);
read(t);
p=(double) u*1.0/v*1.0;
rep(i,1,n)
read(f[i]);
sort(f+1,f+n+1,greater<int>());
rep(i,1,n) date.push(f[i]);
rep(i,1,m)
{
int maxn=-2147454,flag(0);
if(date.size()&&date.front()>maxn) maxn=date.front(),flag=1;
if(a.size()&&a.front()>maxn) maxn=a.front(),flag=2;
if(b.size()&&b.front()>maxn) maxn=b.front(),flag=3;
maxn+=(i-1)*q;
switch (flag)
{
case 1:
{
date.pop();
break;
}
case 2:
{
a.pop();
break;
}
case 3:
{
b.pop();
break;
};
}
int x=maxn*p,y=maxn-x;
if(!(i%t)) printf("%d ",maxn);
a.push(x-i*q);
b.push(y-i*q);
}
putchar('\n');
for(int i(1); date.size()||a.size()||b.size(); ++i)
{
int maxn=-2147454,flag;
if(date.size()&&date.front()>maxn)maxn=date.front(),flag=1;
if(a.size()&&a.front()>maxn)maxn=a.front(),flag=2;
if(b.size()&&b.front()>maxn)maxn=b.front(),flag=3;
switch (flag)
{
case 1:
{
date.pop();
break;
}
case 2:
{
a.pop();
break;
}
case 3:
{
b.pop();
break;
};
}
if(!(i%t))
printf("%d ",maxn+m*q);
}
return 0;
}
如题。。。。数组开够大了.