一道有趣的题目,首先想到合并果子,然而发现会超时,我们可以发现首先拿出来的切掉后比后拿出来切掉后还是还长,即满足单调递增,故建立三个队列即可。

代码

#include<bits/stdc++.h>
#define p u/v
using namespace std;
long long n,m,len,t,a,u,v;
const int maxn=1e7+10;
int line1[maxn],line2[maxn],line3[maxn];
int l1,l2,l3,r1,r2,r3;
bool cmp(int x,int y){
return x>y;
}
int gots(int x){
int a,b,c,d;
a=b=c=d=-1;
if(l1<=r1) b=line1[l1]+x*len;
if(l2<=r2) c=line2[l2]+x*len;
if(l3<=r3) d=line3[l3]+x*len;
a=max(b,max(c,d));
if(a==b) l1++;
else{
if(a==c) l2++;
else l3++;
}
return a;
}
int main(){
scanf("%lld %lld %lld %lld %lld %lld",&n,&m,&len,&u,&v,&t);
for(int i=1;i<=n;i++) scanf("%d",&line1[i]);
sort(line1+1,line1+1+n,cmp);
r1=n;l1=l2=l3=1;
for(int i=1;i<=m;++i){
int x=gots(i-1);
if(!(i%t)) printf("%d ",x);
int a=x*p;
int b=x-a;
line2[++r2]=a-i*len;
line3[++r3]=b-i*len;
}printf("\n");
for(int i=1;i<=m+n;++i){
int x=gots(m);
if(!(i%t)) printf("%d ",x);
}
return 0;
}

最新文章

  1. 会计凭证BAPI_ACC_DOCUMENT_POST
  2. js模板引擎
  3. SCOM Visio监控 与sharepoint 2010 整合
  4. Java基础-关键字-final
  5. CreateRemoteThread远程线程注入Dll与Hook
  6. cmd命令行查看windows版本
  7. MVP+RXJAVA+RecyclerView实现sd卡根目录下的所有文件中的照片加载并显示
  8. web_find和web_reg_find的用法和区别
  9. js访问 xmldom
  10. lua协程并发下载简单测试
  11. jquer 带左右按钮滚动图片 点击显示大图
  12. BZOJ:4825: [Hnoi2017]单旋
  13. C#异常处理--C#基础
  14. Confluence 6 链接到其他应用
  15. Auto-ML之自动化特征工程
  16. Python 深度递归
  17. Trustin Lee
  18. error &quot;OPatch cannot find a valid oraInst.loc file to locate Central Inventory
  19. Notes of Daily Scrum Meeting(11.11)
  20. ubuntu 下安装ffmpeg

热门文章

  1. 消息中间件——RabbitMQ(一)Windows/Linux环境搭建(完整版)
  2. java volatile关键字作用及使用场景
  3. 从原理层面掌握@SessionAttribute的使用【一起学Spring MVC】
  4. Java模拟并解决缓存穿透
  5. Python学习系列(四)Python 入门语法规则2
  6. ccf 201903-5 317号子任务(60分)
  7. 工作中常见的五种技术leader
  8. javaScript今日总结
  9. 史上最全面 Android逆向培训之__Xposed使用
  10. Kendo-Grid for Vue API and Template