#include<bits/stdc++.h>
using namespace std;
int num=1,num1=1,arr1[1001],arr2[1001];//arr1是输入的原数据,arr2是站C中暂存的数据 
int main()
{
	int n;
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>arr1[i];
	}
	for(int j=1;j<=n;j++)
	{
		while(num<=arr1[j])//入栈 
		{
			arr2[num1]=num;
			num++;
			num1++;
		}
		if(arr1[j]==arr2[num1-1])//num1最后多加了一次,所以要-1 
		{
			num1--;//出栈 
		}
		else
		{
			cout<<"NO";
			return 0;
		}
	}
	cout<<"YES";
	return 0;
}
测试点 #1
Accepted
得分:100
用时:3 ms
内存:264 KiB

输入文件(train1.in

5
5 4 2 3 1
输出文件(train1.out
NO
选手输出
NO

测试点 #2
Accepted
得分:100
用时:3 ms
内存:252 KiB

输入文件(train2.in

8
3 7 8 6 5 4 2 1
输出文件(train2.out
YES
选手输出
YES

测试点 #3
Accepted
得分:100
用时:3 ms
内存:252 KiB

输入文件(train3.in

10
6 3 1 8 10 9 2 4 7 5
输出文件(train3.out
NO
选手输出
NO

测试点 #4
Accepted
得分:100
用时:2 ms
内存:252 KiB

输入文件(train4.in

20
2 1 10 9 8 7 6 12 11  13 14 15 18 19 17 16 20 5 4 3
输出文件(train4.out
YES
选手输出
YES

测试点 #5
Accepted
得分:100
用时:2 ms
内存:252 KiB

输入文件(train5.in

20
2 1 10 9 8 7 6 12 11 5 13 14 15 18 19 17 16 20 4 3
输出文件(train5.out
YES
选手输出
YES