链接:http://codeforces.com/problemset/problem/583/B
//求改变的方向次数
//直接模拟 题目是从1 开始 所以从左到右 从右到左
#include <stdio.h>
#include <algorithm>
using namespace std;
int a[1000+10];
int vis[1000+10];
int main()
{
int n,t=0;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d",a+i);
}
if(n==1){printf("0\n");return 0;}
int ans,flag,cnt=0;
ans=flag=0;
while(cnt!=n)
{
for(int i=0;i<n;i++)
{
if(a[i]<=cnt&&!vis[i])
{
cnt++;
if(!flag)
{
ans++;
flag=1;
}
vis[i]=1;
}
}
for(int i=n-1;i>=0;i--)
{
if(a[i]<=cnt&&!vis[i])
{
cnt++;
if(flag)
{
ans++;
flag=0;
}
vis[i]=1;
}
}
}
printf("%d",ans-1);
return 0;
}