记录编号 141367 评测结果 AAAAAAAAAA
题目名称 [HNOI 2002]营业额统计 最终得分 100
用户昵称 GravatarAsm.Def 是否通过 通过
代码语言 C++ 运行时间 0.081 s
提交时间 2014-12-01 00:21:49 内存使用 0.31 MiB
显示代码纯文本
/*====================Asm.Def========================*/
#include <iostream>
#include <cctype>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <set>
#include <ctime>
using namespace std;
inline bool getd(int &x){
	int c = getchar();
	bool minus = 0;
	while(!isdigit(c) && c != '-' && c != EOF)c = getchar();
	if(c == EOF)return 0;
	if(c == '-')minus = 1, c = getchar();
	x = c - '0';
	while(isdigit(c = getchar()))x = x * 10 + c - '0';
	if(minus)x = -x;
	return 1;
}
/*======================================================*/
int n, ans = 0;
multiset<int> S;
int main(){
	freopen("turnover.in", "r", stdin);
	freopen("turnover.out", "w", stdout);
	//freopen("test", "r", stdin);
	int i, t, tmp;
	multiset<int>::iterator it1, it2;
	getd(n);getd(ans);S.insert(ans);
	while(--n){
		tmp = 0x7fffffff;
		if(!getd(t))t = 0;S.insert(t);it1 = it2 = S.find(t);
		if((++it1) != S.end() && tmp > (*it1 - t))tmp = (*it1 - t);
		if(it2 != S.begin() && tmp > (t - *(--it2)))tmp = (t - *it2);
		ans += tmp;
	}
	printf("%d\n", ans);
	return 0;
}