记录编号 38330 评测结果 AWWWWWWWWW
题目名称 [USACO Open09] 放牧2 最终得分 10
用户昵称 GravatarQhelDIV 是否通过 未通过
代码语言 C++ 运行时间 0.062 s
提交时间 2012-04-17 15:09:29 内存使用 15.54 MiB
显示代码纯文本
#include <fstream>
#include <cstdlib>
using namespace std;
ifstream fin("graze2.in");
ofstream fout("graze2.out");
int N,S,remain,Map[2000],reflex[2000],f[2000][2000],Max=~0u>>1;
void Initialize()
{
int i,temp;
	fin>>N>>S;temp=(S-1)/(N-1)-1;
	for(i=1;i<=N;i++)
	{
		fin>>Map[i];
		reflex[i]=i*temp;
	}
	remain=S-temp*N;
}

void dp()
{
int i,j;	
	for(i=1;i<=N;i++)
	{
		Max=~0u>>1;
		for(j=0;j<=remain;j++)
		{
			f[i][j]=min(f[i-1][j],f[i-1][j-1])+abs(reflex[i]+j-Map[i]);
			Max=min(Max,f[i][j]);
		}
	}
	fout<<Max<<endl;
}

int main()
{
	Initialize();
	
	dp();
	
	fin.close();
	fout.close();
	return 0;
}