代码:
#include<cstdio>
#include<algorithm>
using namespace std;
int a[2010],prefix[2010],sufix[2010];
int main()
{
int n;
scanf("%d",&n);
for(int i=0;i<n;++i)
{
scanf("%d",&a[i]);
}
prefix[0]=a[0]==1;
for(int i=1;i<n;++i)
{
prefix[i]=prefix[i-1]+(a[i]==1);
}
sufix[n-1]=a[n-1]==2;
for(int i=n-2;i>=0;--i)
{
sufix[i]=sufix[i+1]+(a[i]==2);
}
int maxi=0;
for(int i=0;i<=n;++i)
{
int max1=0;
for(int l=0;l<=i;++l)
{
max1=max(max1,(l>0?prefix[l-1]:0)+sufix[l]-sufix[i]);
}
int max2=0;
for(int r=i;r<=n;++r)
{
max2=max(max2,(r+1<n?sufix[r+1]:0)+prefix[r]-(i>0?prefix[i-1]:0));
}
if(max1+max2>maxi)
{
maxi=max1+max2;
}
}
printf("%d",maxi);
return 0;
}
蔡弈文
全部评论