| 记录编号 | 
        29982 | 
        评测结果 | 
        WWWWWWAWWA | 
    
    
        | 题目名称 | 
        388.抢修道路 | 
        最终得分 | 
        20 | 
            
    
    
        | 用户昵称 | 
         Cloud | 
        是否通过 | 
        未通过 | 
    
    
        | 代码语言 | 
        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;
}