#include<stdio.h>
int list[101];
int length[101];//不需要初始化 递增子序列;
int rength[101];//不需要初始化 递减子序列;
#define max(x,y) (x>=(y))?x:(y)
int main()
{
int k,i,j;
while(scanf("%d",&k)!=EOF)
{
for(i=1; i<=k; i++)
{
scanf("%d",&list[i]);
}
for(i=1; i<=k; i++)
{
int nmax = 1;
for(j=1; j<i; j++)
{
if(list[j]<list[i])
{
nmax = max(nmax, length[j]+1);//大于list[i]的list[j],以list[j]结尾的序列长度+1;
}
}
length[i] = nmax;//所以不需要初始化,<i的x的length已经有数值了
}
for(i=k; i>=1; i--)
{
int nmax = 1;
for(j=k; j>i; j--)
{
if(list[j]<list[i])
{
nmax = max(nmax, rength[j]+1);//大于list[i]的list[j],以list[j]结尾的序列长度+1;
}
}
rength[i] = nmax;//所以不需要初始化,<i的x的length已经有数值了
}
int ans = 1;
for(j=1;j<=k;j++)
{
ans = max(ans, length[j]+rength[j]);
/* cout<<length[j]<<" "<<rength[j]<<endl;*/
}
printf("%d\n",k-(ans-1));//减去多余的一个重复的自己
}
}
/**************************************************************
Problem: 1131
User: hrdjmax2
Language: C++
Result: Time Limit Exceed
****************************************************************/
/**************************************************************
Problem: 1131
User: hrdjmax2
Language: C
Result: Accepted
Time:750 ms
Memory:916 kb
****************************************************************/
九度题目1131:合唱队形 2008年北京大学方正实验室计算机研究生机试真题
最新推荐文章于 2017-08-14 15:39:49 发布