RT
自己写完就是85 对着题解一点点调还是调不过
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int maxn=1e5+5;
int n,m,q,u,v,t;
int k[maxn];
int delta=0;
queue<int> a,b,c;
bool cmp(int a,int b){
return a>b;
}
signed main(){
cin>>n>>m>>q>>u>>v>>t;
for(int i=1;i<=n;i++){
cin>>k[i];
}
sort(k+1,k+n+1,cmp);
for(int i=1;i<=n;i++){
a.push(k[i]);
}
for(int i=1;i<=m;i++){
int mx=-1,mxpos;
if(!a.empty()&&mx<a.front()) mx=a.front(),mxpos=1;
if(!b.empty()&&mx<b.front()) mx=b.front(),mxpos=2;
if(!c.empty()&&mx<c.front()) mx=c.front(),mxpos=3;
if(mxpos==1) a.pop();
if(mxpos==2) b.pop();
if(mxpos==3) c.pop();
mx+=delta;
b.push(1ll*mx*u/v-delta-q);
c.push(mx-1ll*mx*u/v-delta-q);
delta+=q;
if(i%t==0) cout<<mx<<" ";
}
cout<<"\n";
for(int i=1;i<=n+m;i++){
int mx=-0x7fffffff,mxpos;
if(!a.empty()&&mx<a.front()) mx=a.front(),mxpos=1;
if(!b.empty()&&mx<b.front()) mx=b.front(),mxpos=2;
if(!c.empty()&&mx<c.front()) mx=c.front(),mxpos=3;
if(mxpos==1) a.pop();
if(mxpos==2) b.pop();
if(mxpos==3) c.pop();
if(i%t==0) cout<<mx+delta<<" ";
}
return 0;
}
求大佬指点Orz