比赛 20090916练习赛 评测结果 AAAAAAAAAA
题目名称 护卫队 最终得分 100
用户昵称 Launcher 运行时间 0.022 s
代码语言 C++ 内存使用 3.18 MiB
提交时间 2013-11-07 20:57:31
显示代码纯文本
#include<iostream>
#include<cstdio>
using namespace std;
int n,m;
long long w[1002]={0};
long long s[1002]={0};
double t[1002]={0},T[1002]={0};
int f[1002]={0};
double Max(double x,double y)
{
	if (x>y)
		return x;
	else
		return y;
}
double Min(double x,double y)
{
	if (x<y)
		return x;
	else
		return y;
}
int main()
{
	freopen("convoy.in","r",stdin);
	freopen("convoy.out","w",stdout);
	int i,j,l;
	long long k=0;
	double u=0;
	cin>>m>>l>>n;
	for (i=1;i<=n;i++)
		cin>>w[i]>>s[i];
	f[1]=w[1];
	t[1]=(1.0*l/s[1])*60;
	T[1]=(1.0*l/s[1])*60;
	for (i=2;i<=n;i++)
	{
		T[i]=1.0*l/s[i]*60;
		j=i-1;
		k=w[i]+w[i-1];
		u=T[i];
		t[i]=t[i-1]+u;
		while ((k<=m)&&(j>0))
		{
			
			u=Max(T[j],u);
			t[i]=Min(t[j-1]+u,t[i]);
			j--;
			k+=w[j];
		}
	//	cout<<k<<' '<<m<<endl;

	}

		//if (t[i]<t[i-1])
		//	cout<<"***********************************"<<endl;
		printf("%.1lf\n",t[n]);

	return 0;
}