using
System;
using
System.Collections.Generic;
public
class
GFG{
static
int
good_elements(
int
[] arr,
int
n)
{
int
ans = Int32.MaxValue;
if
(n % 2 == 1) {
ans = 0;
for
(
int
i = 1; i < n; i += 2) {
int
temp = Math.Max(arr[i + 1], arr[i - 1])
- arr[i] + 1;
ans = ans + Math.Max(0, temp);
}
}
else
{
int
[] pref =
new
int
[n + 1];
int
[] suff =
new
int
[n + 1];
for
(
int
i = 1; i < n+1; i += 1) {
pref[i] = 0;
}
for
(
int
i = 1; i < n+1; i += 1) {
suff[i] = 0;
}
for
(
int
i = 1; i + 1 < n; i += 2) {
int
temp = Math.Max(
0, Math.Max(arr[i + 1], arr[i - 1])
- arr[i] + 1);
pref[i + 1] = pref[i - 1] + temp;
}
for
(
int
i = n - 2; i - 1 > 0; i -= 2) {
int
temp = Math.Max(
0, Math.Max(arr[i + 1], arr[i - 1])
- arr[i] + 1);
suff[i - 1] = suff[i + 1] + temp;
}
for
(
int
i = 0; i < n; i += 2) {
ans = Math.Min(ans, pref[i] + suff[i + 1]);
}
}
return
ans;
}
static
public
void
Main (){
int
[] arr = { 1, 2, 3, 1, 1 };
int
N = arr.Length;
int
ans = good_elements(arr, N);
Console.WriteLine(ans);
}
}