#include constexpr long long INF = 1ll << 60; using namespace std; int main() { int N; cin >> N; vector A(N, INF); for (int i = 0; i < N; i++) { cin >> A[i]; } priority_queue pq; for (int i = 1; i < N - 1; i++) { if (A[i - 1] < A[i] && A[i] > A[i + 1]) pq.push(i); } int ans = 0; while (!pq.empty()) { int i = pq.top(); pq.pop(); ++ans; A[i] = min(A[i - 1], A[i + 1]) - 1; if (i > 1) { if (A[i - 2] < A[i - 1] && A[i - 1] > A[i]) pq.push(i - 1); } if (i < N - 2) { if (A[i] < A[i + 1] && A[i + 1] > A[i + 2]) pq.push(i + 1); } } cout << ans << endl; return 0; }