#include<bits/stdc++.h>
#define inf 0x3f3f3f3f3f
#define ll long long
using namespace std;
const int N=2050;
ll dp[N][N]={0};
ll s[N]={0};
int main()
{
int n;
while(~scanf("%d",&n))
{
for(int i=1;i<=n;i++)
{
scanf("%d",&s[i]);
}
for(int i=0;i<=n;i++)
{
dp[i][0]=-inf;
for(int j=1;j<=n;j++)
{
dp[i][j]=inf;
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=i;j++)
{
if((i-j-1)>=0&&s[i]>dp[i-1][i-j-1])dp[i][j]=min(s[i-1],dp[i][j]);
if(s[i]>s[i-1])dp[i][j]=min(dp[i][j],dp[i-1][j]);
}
}
if(dp[n][n/2]==inf)printf("No!\n");
else printf("Yes!\n");
}
return 0;
}
已通过类似题目P4728双递增序列