记录编号 |
38330 |
评测结果 |
AWWWWWWWWW |
题目名称 |
[USACO Open09] 放牧2 |
最终得分 |
10 |
用户昵称 |
QhelDIV |
是否通过 |
未通过 |
代码语言 |
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;
}