按正解写的,不知为何T了 只剩70pts
#include<bits/stdc++.h>
#pragma GCC 9 optimize("O1")
#pragma GCC 9 optimize("O2")
#pragma GCC 9 optimize("O3")
#pragma GCC 9 optimize("Ofast")
using namespace std;
typedef long long ll;
inline ll read(){
ll x=0,f=1;
char ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-'){
f=-1;
}
ch=getchar();
}
while(ch>='0'&&ch<='9'){
x=x*10+ch-'0';
ch=getchar();
}
return x*f;
}
inline void write(ll q){
if(q>9) write(q/10);
putchar(q%10+'0');
}
const int N=1e5+10;
ll n,m,u,v,t,q,a[N],now,x,y,k;
queue<ll> q1,q2,qq;
inline bool cmp(ll x,ll y){
return x>y;
}
signed main(){
n=read();
m=read();
q=read();
u=read();
v=read();
t=read();
for (int i=1;i<=n;i++){
a[i]=read();
}
sort(a+1,a+1+n,cmp);
for (int i=1;i<=n;i++){
qq.push(a[i]);
}
// if(q==0){
for (int i=1;i<=m;i++){
now=0;
if(!qq.empty())now=qq.front();
if(now>q1.front()&&now>q2.front()&&!qq.empty()){
qq.pop();
} else if(q1.front()>q2.front()){
now=q1.front();
q1.pop();
} else {
now=q2.front();
q2.pop();
}
now+=q*(i-1);
if(i%t==0){
write(now);
printf(" ");
}
x=1ll*now*u/v;
y=now-x;
q1.push(x-q*i);
q2.push(y-q*i);
}
ll i=0;
puts("");
while(!qq.empty()||!q1.empty()||!q2.empty()){
k=0;
now=0;
if(!qq.empty()){
now=qq.front();
k=1;
}
if(!q1.empty()){
if(q1.front()>now){
k=2;
now=q1.front();
}
}
if(!q2.empty()){
if(q2.front()>now){
k=3;
now=q2.front();
}
}
i++;
if(i%t==0){
write(now+q*m);
printf(" ");
}
if(k==1) qq.pop();
else if(k==2) q1.pop();
else if(k==3) q2.pop();
}
// }
}