#include <bits/stdc++.h>
using namespace std;
int a[10001];
bool find(int l, int r)
{
for(int i = l ; i <= r ; i++)
{
if(a[i] != 0) return false;
}
return true;
}
int main()
{
int n, ans = 0;
cin >> n;
int l = 0, r = n - 1;
bool check, f;
for(int i = 0 ; i < n ; i++)
{
cin >> a[i];
if(a[i] == 0)
{
if(i < n / 2) l++;
else r = i - 1;
}
}
for(int i = 0 ; f == false ; i++)
{
for(int j = l ; j <= r ; j++)
{
a[j]--;
// cout << ans << endl;
}
for(int j = l ; j <= r ; j++)
{
if(a[j] == 0)
{
if(j < n / 2) l++;
else r = j - 1;
// check = true;
}
check = find(l, r);
// cout << l << " " << r << endl;
}
if(check)
{
for(int j = 0 ; j < n ; j++)
{
if(a[j] != 0)
{
l = j;
f = false;
}
else r = j;
}
}
ans++;
f = find(l, r);
}
cout << ans + 1;
return 0;
}
我把#1测试点的数据下载,答案输出一样,不知道为啥...