比赛 |
20090916练习赛 |
评测结果 |
AWAAWAAAAA |
题目名称 |
护卫队 |
最终得分 |
80 |
用户昵称 |
TBK |
运行时间 |
0.000 s |
代码语言 |
C++ |
内存使用 |
0.00 MiB |
提交时间 |
2011-10-17 21:08:14 |
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <iomanip>
using namespace std;
double r[1000],s;
int b,c,d,l,m;
struct fun
{
int a;
int k;
}f[1000];
int main(void)
{
freopen ("convoy.in","r",stdin);
freopen ("convoy.out","w",stdout);
scanf("%d%d%d",&b,&c,&d);
scanf("%d%d",&f[0].a,&f[0].k);
for (l=1;l<d;l++)
{
scanf("%d%d",&f[l].a,&f[l].k);
f[l].a+=f[l-1].a;
}
r[0]=(double)c/f[0].k*60;
for (l=1;l<d;l++)
{
s=f[l].k;
r[l]=r[l-1]+(double)c/s*60;
for (m=l-1;m>=0;m--)
if (((m==0)&&(f[l].a<=b))||((f[l].a-f[m-1].a)<=b))
{
if (f[m].k<s) s=f[m].k;
if (((m==0)&&((double)c/s*60<=r[l]))||((r[m-1]+(double)c/s*60)<r[l]))
{
if (m!=0) r[l]=r[m-1]+(double)c/s*60;
else r[l]=(double)c/s*60;
}
}
}
printf("%.1lf",r[d-1]);
fclose(stdin);
fclose(stdout);
return 0;
}