记录编号 29982 评测结果 WWWWWWAWWA
题目名称 抢修道路 最终得分 20
用户昵称 GravatarCloud 是否通过 未通过
代码语言 C++ 运行时间 0.102 s
提交时间 2011-10-27 09:17:31 内存使用 0.24 MiB
显示代码纯文本
#include<cstdio>
#include<iostream>
using namespace std;
int abs1(int a)
{
	if(a>=0)return a;
	else return -a;
}
int main(void)
{
	freopen("roady.in","r",stdin);
	freopen("roady.out","w",stdout);
	int n,y[2001]={0},s[2001];
	int p,q=0;
	scanf("%d",&n);
	for(p=1;p<=n;p++)
		scanf("%d",&y[p]);
	int m1=0,m2=0;
	for(p=n;p>0;p--)
	{
		s[q]=y[p];
		q++;
	}
	for(p=2;p<=n;p++)
	{
		if(y[p]>=y[p-1]&&y[p]>y[p+1]&&y[p-1]<=y[p+1]||y[p]<y[p-1])
		{
			if(abs1(y[p]-y[p-1])<abs1(y[p]-y[p+1]))
			{
				m1+=abs1(y[p]-y[p-1]);
				y[p]=y[p-1];
			}
			else 
			{
				m1+=abs1(y[p]-y[p+1]);
				y[p]=y[p+1];
			}
		}
	}
	for(p=2;p<=n;p++)
	{
		if(s[p]>=s[p-1]&&s[p]>s[p+1]&&s[p-1]<=s[p+1]||s[p]<s[p-1])
		{
			if(abs1(s[p]-s[p-1])<abs1(s[p]-s[p+1]))
			{
				m2+=abs1(s[p]-s[p-1]);
				s[p]=s[p-1];
			}
			else 
			{
				m2+=abs1(s[p]-s[p+1]);
				s[p]=s[p+1];
			}
		}
	}
	if(m1>m2)m1=m2;
	printf("%d",m1);
	return 0;
}