记录编号 |
358328 |
评测结果 |
AAAAAAAAAAAAAAAAAAAA |
题目名称 |
[NOIP 2016]蚯蚓 |
最终得分 |
100 |
用户昵称 |
AntiLeaf |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
1.619 s |
提交时间 |
2016-12-15 19:00:59 |
内存使用 |
0.69 MiB |
显示代码纯文本
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<functional>
#include<queue>
#define frt(que) ((que.empty()?-2147483647:que.front()))
using namespace std;
int n,m,t,u,v,q,o[100010],x,a,b,c;
queue<int>qa,qb,qc;
int main(){
freopen("earthworm.in","r",stdin);
freopen("earthworm.out","w",stdout);
scanf("%d%d%d%d%d%d",&n,&m,&q,&u,&v,&t);
for(int i=1;i<=n;i++)scanf("%d",&o[i]);
sort(o+1,o+n+1,greater<int>());
for(int i=1;i<=n;i++)qa.push(o[i]);
for(int i=1;i<=m;i++){
a=frt(qa);
b=frt(qb);
c=frt(qc);
if(a>=b&&a>=c)qa.pop();
else if(b>c){
a=b;
qb.pop();
}
else{
a=c;
qc.pop();
}
a+=q*(i-1);
x=(long long)a*u/v;
qb.push(x-q*i);
qc.push(a-x-q*i);
if(i%t==0)printf("%d ",a);
}
printf("\n");
for(int i=1;!(qa.empty()&&qb.empty()&&qc.empty());i++){
a=frt(qa);
b=frt(qb);
c=frt(qc);
if(a>=b&&a>=c)qa.pop();
else if(b>c){
a=b;
qb.pop();
}
else{
a=c;
qc.pop();
}
a+=q*m;
if(i%t==0)printf("%d ",a);
}
return 0;
}