比赛 |
2017noip |
评测结果 |
AAAAAAAAAAAAAAAAAAAA |
题目名称 |
蚯蚓 |
最终得分 |
100 |
用户昵称 |
pb0207 |
运行时间 |
2.924 s |
代码语言 |
C++ |
内存使用 |
1.08 MiB |
提交时间 |
2017-09-21 07:56:07 |
显示代码纯文本
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<queue>
using namespace std;
const long long N=1e5+1e3+7,INF=0x7fffffff;
queue<long long>q1,q2,q3;
long long n,m,q,u,v,t,qy[N];
bool cmp(long long a,long long b)
{
return a>b;
}
int main()
{
freopen("earthworm.in","r",stdin);
freopen("earthworm.out","w",stdout);
scanf("%lld%d%d%d%d%d",&n,&m,&q,&u,&v,&t);
for(long long i=1;i<=n;i++)
scanf("%lld",&qy[i]);
sort(qy+1,qy+n+1,cmp);
for(long long i=1;i<=n;i++)
q1.push(qy[i]);
for(long long i=1;i<=m;i++)
{
long long a=q1.empty()?-INF:q1.front();
long long b=q2.empty()?-INF:q2.front();
long long c=q3.empty()?-INF:q3.front();
if(a>=b&&a>=c)
q1.pop();
else
if(b>=c)
{
a=b;
q2.pop();
}
else
{
a=c;
q3.pop();
}
a+=(i-1)*q;
b=a*u/v;
c=a-b;
q2.push(b-q*i);
q3.push(a-b-q*i);
if(i%t==0)
printf("%lld ",a);
}
printf("\n");
for(long long i=1;!(q1.empty()&&q2.empty()&&q3.empty());i++)
{
long long a=q1.empty()?-INF:q1.front();
long long b=q2.empty()?-INF:q2.front();
long long c=q3.empty()?-INF:q3.front();
if(a>=b&&a>=c)
q1.pop();
else
if(b>=c)
{
a=b;
q2.pop();
}
else
{
a=c;
q3.pop();
}
a+=m*q;
if(i%t==0)
printf("%lld ",a);
}
}