/ Vijos / 讨论 / 蚯蚓 /

求神犇纠错

#include <iostream>
#include <cstdio>
#include <deque>
#include <algorithm>
using namespace std;
int n,m,q,u,v,t,time;
deque<pair<int,int> > a[3];
bool cmp(pair<int,int> c,pair<int,int> d)
{
return c.first>d.first;
}
int length(pair<int,int> x)
{
return x.first+q*(time-x.second);
}
int get_max()
{
int r=0,p;
if(!a[0].empty()&&length(a[0].front())>r)
{
r=length(a[0].front());
p=0;
}
if(!a[1].empty()&&length(a[1].front())>r)
{
r=length(a[1].front());
p=1;
}
if(!a[2].empty()&&length(a[2].front())>r)
{
r=length(a[2].front());
p=2;
}
a[p].pop_front();
return r;
}
int main()
{
scanf("%d %d %d %d %d %d",&n,&m,&q,&u,&v,&t);
int x;
for(int i=1;i<=n;i++)
{
scanf("%d",&x);
pair<int,int> y;
y.first=x;
y.second=0;
a[0].push_back(y);
}
sort(a[0].begin(),a[0].end(),cmp);
/*
for(int i=0;i<n;i++)
{
printf("%d %d %d\n",i,a[0][i].first,a[0][i].second);
}
system("pause");
*/
for(time=0;time<m;time++)
{
int s=get_max();
if((time+1)%t==0) printf("%d ",s);
int s1=s*u/v;
int s2=s-s1;
a[1].push_back(make_pair(s1,time+1));
a[2].push_back(make_pair(s2,time+1));
}
printf("\n");
for(int i=1;i<=m+n;i++)
{
int s=get_max();
if(i%t==0) printf("%d ",s);
}
printf("\n");
return 0;
}

2 条评论

  • @ 2017-03-18 14:38:16

    哦,原来要开long long

    话说stl好慢

  • @ 2017-03-11 15:26:21

    这个程序评测同时出现了RE,TLE,AC,WA四个结果......

  • 1

信息

ID
2007
难度
7
分类
(无)
标签
递交数
1580
已通过
319
通过率
20%
被复制
8
上传者