本人75分 #4,6,13,14,20错误
求调
#include<iostream>
#include<vector>
#include<stdio.h>
using namespace std;
const int MAXN=7e6+1e5+10;
int n,m,q,u,v,t;
long long add=0;
int aSize;
vector<long long> a(MAXN);
void up(int zb){
while(true){
if(zb<1) break;
int p=zb/2;
if(a[p]<a[zb]){
swap(a[p],a[zb]);
zb=p;
} else break;
}
}
void down(int zb){
while(true){
if(zb*2>aSize) break;
int c=zb*2;
if(zb*2+1<=aSize && a[zb*2+1]>a[c])
c=zb*2+1;
if(a[c]>a[zb]){
swap(a[zb],a[c]);
zb=c;
} else break;
}
}
int main(){
scanf("%d%d%d%d%d%d",&n,&m,&q,&u,&v,&t);
for(int i=1;i<=n;i++)
scanf("%lld",&a[i]);
aSize=n;
for(int i=n/2;i>=1;i--)
down(i);
vector<long long> fout;
for(int time=1;time<=m;time++){
long long maxLong=a[1]+add;
if(time%t==0)
fout.push_back(maxLong);
long long one=(maxLong*u)/v - add - q;
long long two=maxLong - (maxLong*u)/v - add - q;
add+=q;
a[1]=a[aSize];
aSize--;
down(1);
aSize++;
a[aSize]=one;
up(aSize);
aSize++;
a[aSize]=two;
up(aSize);
}
for(size_t i=0;i<fout.size();i++){
if(i>0) printf(" ");
printf("%lld",fout[i]);
}
printf("\n");
vector<long long> allWorms;
int tempSize=aSize;
for(int i=1;i<=tempSize;i++){
allWorms.push_back(a[1]+add);
a[1]=a[aSize];
aSize--;
down(1);
}
vector<long long> sout;
for(size_t i=0;i<allWorms.size();i++){
if((i+1)%t==0)
sout.push_back(allWorms[i]);
}
for(size_t i=0;i<sout.size();i++){
if(i>0) printf(" ");
printf("%lld",sout[i]);
}
printf("\n");
return 0;
}