#include<stdio.h>#include<iostream>constint MAX = 1000;
int S[MAX];
int main()
{
int i, n;
int a[1000];
while (scanf("%d", &n))
{
for (i = 0; i<n; i++)
{
S[i] = i + 1;
}
for (i = 1; i <= n; i++)
{
scanf("%d", &a[i]);
}
int top = n-1;
int flag = 0, j = 1, k = n;
while (top)
{
printf("%d", S[top]);
if (S[top] == a[j])
{
top--;
j++;
flag = 1;
}
if (S[top] == a[k])
{
top--;
k--;
flag=1;
}
else
{
break;
}
}
if (flag)
printf("Yes\n");
elseprintf("No\n");
}
return0;
}
#include<iostream>#include<stack>usingnamespacestd;
int main()
{
stack<int>S;
int n;
int a[1000];
while (cin>>n)
{
for (int i = 1; i <= n; i++)
{
S.push(i);
cin >> a[i];
}
int j = 1, k = n, flag=0;
while (!S.empty())
{
if (S.top() == a[j])
{
flag = 1;
j++;
}
if (S.top() == a[k])
{
flag = 1;
k--;
}
else
{
flag = 0;
break;
}
S.pop();
}
if (flag)
cout << "Yes" << endl;
elsecout << "No" << endl;
}
}