记录编号 |
141367 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[HNOI 2002]营业额统计 |
最终得分 |
100 |
用户昵称 |
Asm.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;
}