比赛 20090916练习赛 评测结果 WWWWWWWAWW
题目名称 任务安排 最终得分 10
用户昵称 donny 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2011-09-21 19:54:01
显示代码纯文本
#include <iostream>
#include <fstream>
#include <iomanip>

using namespace std;

int n,i,j,k,l;
int s,t[5010],v[5010];
int f[5010],tt[5010],fc;

int main()
{
	ifstream fin("batch.in");
	ofstream fout("batch.out");
	
	fin>>n>>s;
	
	for (i=1;i<=n;i++)
	{
		fin>>t[i]>>v[i];
		v[i]=v[i]+v[i-1];
		t[i]=t[i]+t[i-1];
	}
	
	f[0]=0;
	f[1]=(s+t[1])*v[1];
	tt[1]=s+t[1];
	
	for (i=2;i<=n;i++)
	{
		f[i]=f[i-1]+(tt[i-1]+s+t[i]-t[i-1])*(v[i]-v[i-1]);
		tt[i]=tt[i-1]+s+t[i]-t[i-1];
		for (j=i-1;j>=1;j--)
			if ((f[j-1]+(tt[j-1]+s+t[i]-t[j-1])*(v[i]-v[j-1]))<f[i])
			{
				f[i]=f[j-1]+(tt[j-1]+s+t[i]-t[j-1])*(v[i]-v[j-1]);
				tt[i]=tt[j-1]+s+t[i]-t[j-1];
			}
	}
	
	fout<<f[n];
	
	fin.close();
	fout.close();
	
	return 0;
}