记录编号 176856 评测结果 AAAAAAAAAA
题目名称 [HNOI 2002]营业额统计 最终得分 100
用户昵称 Gravatar啊吧啦吧啦吧 是否通过 通过
代码语言 C++ 运行时间 0.344 s
提交时间 2015-08-10 07:41:23 内存使用 0.32 MiB
显示代码纯文本
#include <iostream>
#include <fstream>
#include <cstdio>
#include <set>
#include <climits>
#include <cstdlib>
 
using namespace std;
 
const int MAXN(32768);
int n;
unsigned int ans = 0;
set<int> a;
ofstream fout("turnover.out");
#define cout fout
 
main()
{
	FILE *fin;
	int x;
	fin = fopen("turnover.in", "r");
	fscanf(fin, "%d%d", &n, &x);
	ans = x;
	a.insert(x);
	for (int i = 1; i < n; ++i){
		int tig;
		if (fscanf(fin, "%d", &x) == EOF)
			x = 0;
		tig = INT_MAX;
		if (a.lower_bound(x) != a.end())
			tig = abs(*a.lower_bound(x) - x);
		if (a.lower_bound(x) != a.begin())
			tig = min(tig, abs(*(--a.lower_bound(x)) - x));
		if(++a.lower_bound(x)!=a.end()&&a.lower_bound(x)!=a.end())
			tig = min(tig, abs(*(++a.lower_bound(x)) - x));
		ans += tig;
		a.insert(x);
//		cout << ans << endl;
	}
	fclose(fin);
	
	cout << ans;
	fout.close();
//	for(;;);
}