- 蚯蚓
- 2017-03-11 15:25:43 @
#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 条评论
-
xiaoxiongfan LV 9 @ 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
- 上传者