| 记录编号 | 141362 | 评测结果 | AAAAAAAAAA | 
    
        | 题目名称 | 1533.[HNOI 2002]营业额统计 | 最终得分 | 100 | 
    
        | 用户昵称 |  HouJikan | 是否通过 | 通过 | 
    
        | 代码语言 | C++ | 运行时间 | 0.096 s | 
    
        | 提交时间 | 2014-11-30 22:39:50 | 内存使用 | 0.31 MiB | 
    
    
    
    		显示代码纯文本
		
		#include <cstdio>
#include <iostream>
#include <cmath>
#include <algorithm>
#include <cstring>
#include <cstdlib>
#include <set>
#include <iterator>
using namespace std;
const int INF=0x7fffffff;
int n,sale;
int ans=0;
multiset <int> TurnOver;
multiset<int>::iterator it,it1,it2;
int main()
{
#define FILE__
#ifdef FILE__
   freopen("turnover.in","r",stdin);
   freopen("turnover.out","w",stdout);
 #endif
   scanf("%d",&n);
   scanf("%d",&sale);
   ans+=sale;
   TurnOver.insert(sale);
   for(int i=2;i<=n;i++){
     if (scanf("%d",&sale)==EOF) 
       sale=0;
     it=TurnOver.lower_bound(sale);
	 int minn=INF;
	 if (abs((*it)-sale)<minn)
	   minn=abs((*it)-sale);
	 if (it!=TurnOver.begin()){
	   it--;
	   minn=min(minn,abs((*it)-sale));
	 }
	 ++it;
	 if (it!=--TurnOver.end()){
	   ++it;
	   minn=min(minn,abs((*it)-sale));
	 }
	 ans+=minn;
	 TurnOver.insert(sale);
	 //printf("day %d:%d\n",i,minn);
   }
   printf("%d\n",ans);
}