Tales of a Sort (Codeforces 1856A)
Tags: Implement, implementation

Alphen has an array of positive integers $$$a$$$ of length $$$n$$$.Alphen can perform the following operation:   For all $$$i$$$ from $$$1$$$ to $$$n$$$, replace $$$a_i$$$ with $$$\max(0, a_i - 1)$$$. Alphen will perform the above operation until $$$a$$$ is sorted, that is $$$a$$$ satisfies $$$a_1 \leq a_2 \leq \ldots \leq a_n$$$. How many operations will Alphen perform? Under the constraints of the problem, it can be proven that Alphen will perform a finite number of operations.

Input: Each test contains multiple test cases. The first line of input contains a single integer $$$t$$$ ($$$1 \le t \le 500$$$) — the number of test cases. The description of the test cases follows.The first line of each test case contains a single integer $$$n$$$ ($$$2 \le n \le 50$$$) — the length of the array $$$a$$$.The second line of each test case contains $$$n$$$ integers $$$a_1, a_2, \dots, a_n$$$ ($$$1 \le a_i \le 10 ^ 9$$$) — the elements of the array $$$a$$$.

Output: For each test case, output a single integer — the number of operations that Alphen will perform.

Note: In the first test case, we have $$$a=[1,2,3]$$$. Since $$$a$$$ is already sorted, Alphen will not need to perform any operations. So, the answer is $$$0$$$.In the second test case, we have $$$a=[2,1,2,1,2]$$$. Since $$$a$$$ is not initially sorted, Alphen will perform one operation to make $$$a=[1,0,1,0,1]$$$. After performing one operation, $$$a$$$ is still not sorted, so Alphen will perform another operation to make $$$a=[0,0,0,0,0]$$$. Since $$$a$$$ is sorted, Alphen will not perform any other operations. Since Alphen has performed two operations in total, the answer is $$$2$$$.

Sample Inputs:
7
3
1 2 3
5
2 1 2 1 2
4
3 1 5 4
2
7 7
5
4 1 3 2 5
5
2 3 1 4 5
3
1000000000 1 2

Sample Outputs:
0
2
5
0
4
3
1000000000

Solution (Python):
count_time = False
if count_time:
    import time
    start_time = time.time()
tt = int(input())
for _ in range(tt):
    n = int(input())
    s = list(map(int, input().split()))
    k = sorted(s)
    e = 0
    for i in range(n):
        if s[i] != k[i]:
            if s[i] > e:
                e = s[i]
    print(e)
if count_time:
    end_time = time.time()
    print('----------------\nRunning time: {} s'.format(end_time - start_time))

Solution (Python):
def solve():
    n = int(input())
    arr = list(map(int, input().split()))
    array = []
    if n == 1:
        print(0)
    if arr is None:
        print(0)
    i = n - 1
    while i > 0 and arr[i - 1] <= arr[i]:
        i -= 1
    if i == 0:
        print(0)
    else:
        for j in range(i + 1):
            array.append(arr[j])
        count = max(array)
        print(count)

def main():
    t = int(input().strip())
    for _ in range(t):
        solve()
if __name__ == '__main__':
    main()

Solution (Python):
for s in [*open(0)][2::2]:
    a = (*map(int, s.split()),)
    print(max((x * (x > y) for (x, y) in zip(a, a[1:]))))