@[REAL_曼巴](/user/371927) 你这玩意怎么样例都过不去
by FFTotoro @ 2023-08-12 16:29:28
@[zyc212303](/user/556366) 555 那所以哪里错了/kk
by REAL_曼巴 @ 2023-08-12 16:36:00
@[REAL_曼巴](/user/371927) 找到问题了:
代码:
```cpp
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int maxn=7e6+7;
int a[maxn];
signed main() {
queue<int>q1,q2,q3;
int n,m,q,u,v,t;
double p=(double)u/v;
cin>>n>>m>>q>>u>>v>>t;
for(int i=1;i<=n;++i){
cin>>a[i];
}
sort(a+1,a+n+1);
for(int i=n;i>=1;--i){
q1.push(a[i]);
}
int w=0,tp=0;
for(int i=1;i<=m;++i){
int maxn=-2147483647,cnt=0,f=0;
if(!q1.empty() && maxn<=q1.front())maxn=max(maxn,q1.front()),f=1;
if(!q2.empty() && maxn<=q2.front())maxn=max(maxn,q2.front()),f=2;
if(!q3.empty() && maxn<=q3.front())maxn=max(maxn,q3.front()),f=3;
if(f==1)q1.pop();
else if(f==2)q2.pop();
else if(f==3)q3.pop();
tp=maxn+w,w+=q;
int d1=tp*u/v-w,d2=tp-d1-2*w;
q2.push(d1),q3.push(d2);
if(!(i%t))printf("%lld ",tp);
}
puts("");
int k=0;
while(!q1.empty()||!q2.empty()||!q3.empty()){
int maxn=-2147483647,cnt=0,f=0;
if(!q1.empty() && maxn<=q1.front())maxn=max(maxn,q1.front()),f=1;
if(!q2.empty() && maxn<=q2.front())maxn=max(maxn,q2.front()),f=2;
if(!q3.empty() && maxn<=q3.front())maxn=max(maxn,q3.front()),f=3;
if(f==1)q1.pop();
else if(f==2)q2.pop();
else if(f==3)q3.pop();
if(!((++k)%t))printf("%lld ",maxn+w);
}
return 0;
}
```
by FFTotoro @ 2023-08-12 16:37:51
@[zyc212303](/user/556366) 啊?所以怎么了
by REAL_曼巴 @ 2023-08-12 16:40:13
@[REAL_曼巴](/user/371927) 改了几个地方,一个是不用那个变量 $p$(有误差),还有一个就是 `<` 改成 `<=`。
by FFTotoro @ 2023-08-12 16:40:18
@[zyc212303](/user/556366) 谢谢您 关注了
by REAL_曼巴 @ 2023-08-12 16:41:28