代码:
#include<algorithm>
#include<iostream>
#include<cmath>
#include<queue>
using namespace std;
const int N = 1e5 + 10;
int n,m,q,u,v,t,A[N];
queue <int> Q[3];
int Get(queue <int> x)
{
return (x.empty() ? -0x7fffffff : x.front());
}
int chose()
{
pair <int,int> Max = max({make_pair(Get(Q[0]),0),make_pair(Get(Q[1]),1),make_pair(Get(Q[2]),2)});
Q[Max.second].pop();
return Max.first;
}
int main()
{
cin >> n >> m >> q >> u >> v >> t;
long double p = 1.0 * u / v;
for(int i = 1;i <= n;i++)
cin >> A[i];
sort(A + 1,A + 1 + n);
for(int i = 1;i <= n;i++)
Q[0].push(A[i]);
for(int i = 1;i <= m;i++)
{
int x = chose() + (i - 1) * q;
int x1 = x * p,x2 = x - x1;
Q[1].push(x1 - q * i);
Q[2].push(x2 - q * i);
if(i % t == 0)
cout << x << ' ';
}
cout << '\n';
for(int i = 1;i <= n + m;i++)
{
int x = chose() + m * q;
if(i % t == 0)
cout << x << ' ';
}
return 0;
}