记录编号 327724 评测结果 AAAAAAAAAA
题目名称 护卫队 最终得分 100
用户昵称 GravatarGROWL GOOD BOYส็ 是否通过 通过
代码语言 C++ 运行时间 0.008 s
提交时间 2016-10-22 19:36:50 内存使用 0.34 MiB
显示代码纯文本
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>

using namespace std;

typedef long long LL;

LL W,L;

LL A[1010],B[1010]; 

int N;

double dp[1010];

double MAX(double a,double b)
{if(a<b)return b;else return a;}

int main()
{   
    freopen("convoy.in","r",stdin);
    freopen("convoy.out","w",stdout);
    scanf("%lld%lld%d",&W,&L,&N);
    for(int i=1;i<=N;i++)
    {scanf("%lld%lld",&A[i],&B[i]);}
    dp[0]=0.0;
    for(int i=1;i<=N;i++)
    {
        double ha=0;
        dp[i]=99999999999999.0;
        LL qian=0;  
        int k=i;
        while(qian+A[k]<=W&&k>0)
        {
            qian+=A[k];
            ha=MAX(ha,(double)L/B[k]);
            if(dp[i]>dp[k-1]+ha)
            dp[i]=dp[k-1]+ha;
            k--;
        }
    }   
    printf("%.1lf",dp[N]*60);
    fclose(stdin);
    fclose(stdout);
    return 0;
}