codeforces - 13C - Sequence

C. Sequence
time limit per test 1 second
memory limit per test 64 megabytes
input standard input
output standard output

Little Petya likes to play very much. And most of all he likes to play the following game:

He is given a sequence of N integer numbers. At each step it is allowed to increase the value of any number by 1 or to decrease it by 1. The goal of the game is to make the sequence non-decreasing with the smallest number of steps. Petya is not good at math, so he asks for your help.

The sequence a is called non-decreasing if a1 ≤ a2 ≤ ... ≤ aN holds, where N is the length of the sequence.

Input

The first line of the input contains single integer N (1 ≤ N ≤ 5000) — the length of the initial sequence. The following N lines contain one integer each — elements of the sequence. These numbers do not exceed 109 by absolute value.

Output

Output one integer — minimum number of steps required to achieve the goal.

Examples
Input
5
3 2 -1 2 11
Output
4
Input
5
2 1 1 1 1
Output
1


codeforces链接
luogu链接

 1 #include<cstdio>
 2 #include<queue>
 3  
 4 using namespace std;
 5 
 6 template <typename tn> void read (tn & a) {
 7     tn x = 0, f = 1;
 8     char c = getchar();
 9     while (c < '0' || c > '9'){ if (c == '-') f = -1; c = getchar(); }
10     while (c >= '0' && c <= '9'){ x = x * 10 + c - '0'; c = getchar(); }
11     a = f == 1 ? x : -x;
12 }
13 
14 const int MAXN = 5100;
15 long long n, ans;
16 priority_queue<long long> q;
17 
18 int main() {
19     read(n);
20     ans = 0;
21     while (n--) {
22         int x;
23         read(x);
24         q.push(x);
25         if (q.top() > x) {
26             ans += q.top() - x;
27             q.pop();
28             q.push(x);
29         }
30     }
31     printf("%lld\n", ans);
32     return 0;
33 } 
View Code

猜你喜欢

转载自www.cnblogs.com/m-m-m/p/8993836.html
今日推荐