DMOPC '20 Contest 1 P3 - Victor's Algorithm

View as PDF

Submit solution


Points: 7 (partial)
Time limit: 0.6s
Memory limit: 256M

Author:
Problem type

I can sort in O(1) ~ Victor, 2019

Victor has invented a brand new sorting algorithm that promises an O(1) upper bound! However, there is a catch: this algorithm will only work on a nice sequence of numbers. Victor considers a sequence S of length N nice if it is first non-decreasing, then non-increasing. (i.e. S is nice if there exists some position i in the sequence such that S1S2Si1SiSi+1SN1SN).

You have subsequently found that Victor's algorithm can be extended to any arbitrary sequence of numbers A by converting that sequence of numbers into a nice sequence A, such that AiAi for all i. Sadly, because counting is very difficult, you can only tell Victor to increment one element in the sequence by 1 once a second.

Write a program that finds the minimum number of seconds required to convert any given A into a valid A!

Constraints

For all subtasks:

109Si109 for all i.

Subtask 1 [20%]

The length of the sequence N is bounded by 1N1000.

Subtask 2 [80%]

The length of the sequence N is bounded by 1N500000.

Input Specification

The first line will contain N, the length of the sequence.

The next line will contain N space-separated integers S1,S2,,SN.

Output Specification

Output the minimum number of seconds required to convert the given sequence into a nice sequence.

Sample Input 1

Copy
10
-6 8 6 -1 3 -8 -6 -2 5 -2

Sample Output 1

Copy
39

Explanation of Sample Output 1

We can make this a nice sequence by incrementing S4 by 6, S5 by 2, S6 by 13, S7 by 11, and S8 by 7. Since 6+2+13+11+7=39, the answer is 39. It can be shown that this is the minimum possible answer.

Sample Input 2

Copy
5
1 2 3 4 5

Sample Output 2

Copy
0

Explanation of Sample Output 2

This is already a nice sequence.

Sample Input 3

Copy
7
7 6 5 -1 -3 -4 -5

Sample Output 3

Copy
0

Comments

There are no comments at the moment.