测试结果4: 测试结果错误.错误结果为:11
正确结果应为:10
测试结果5: 测试结果错误.错误结果为:12
正确结果应为:11
测试结果6: 测试结果错误.错误结果为:78
正确结果应为:75
测试结果7: 测试结果错误.错误结果为:82
正确结果应为:77
测试结果8: 测试结果错误.错误结果为:81
正确结果应为:76
测试结果9: 测试结果错误.错误结果为:80
正确结果应为:74
测试结果10: 测试结果错误.错误结果为:81
正确结果应为:78
#include <iostream>
using namespace std;
int a[100],b[100],c[100];
int main ()
{
int n,i,j,k,m1,m2,max;
cin>>n;
for (i=0; i<n; i++) cin>>a[i];
b[0]=c[0]=1;
max=0;
for (k=0; k<n; k++) {
m1=m2=0;
for (i=1; i<n; i++) b[i]=0;
for (i=1; i<k; i++) {
if (a[i]>=a[k]) {b[i]=0; continue;}
b[i]=1;
for (j=0; j<i; j++)
if (a[j]<a[i] && b[j]+1>b[i])
b[i]=b[j]+1;
if (b[i]>m1) m1=b[i];
}
for (i=k+1; i<n; i++) {
if (a[i]>=a[k]) {b[i]=0; continue;}
b[i]=1;
for (j=k+1; j<i; j++)
if (a[j]>a[i] && c[j]+1>c[i])
b[i]=b[j]+1;
if (b[i]>m2) m2=b[i];
}
if (m1+m2>max) max=m1+m2;
}
cout<<n-(max+1)<<endl;
return 0;
}
for(int i=1;i<=n;i++){
lis[i]=1;
for(int j=1;j<n;j++)
for(int i=0;i<n;i++){
lis[i]=1;
for(int j=0;j<i;j++)
if(a[j]<a[i]&&lis[j]+1>lis[i])
lis[i]=lis[j]+1;
}