记录编号 |
47891 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[NOIP 2004]合唱队形 |
最终得分 |
100 |
用户昵称 |
cstdio |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.003 s |
提交时间 |
2012-11-03 16:51:36 |
内存使用 |
0.31 MiB |
显示代码纯文本
#include<iostream>
#include<cstdio>
using namespace std;
const int SIZEN=101;
int n;
void maxl(int s[],int f[]){//最长不下降存于f
int i,j;
f[0]=1;
for(i=1;i<n;i++){
f[i]=1;
for(j=0;j<i;j++) if(s[j]<s[i]&&f[j]+1>=f[i]) f[i]=f[j]+1;
}
}
int main(){
freopen("chorus.in","r",stdin);
freopen("chorus.out","w",stdout);
scanf("%d",&n);
int i,ans=-1;
int pos[SIZEN]={0},rev[SIZEN]={0},fp[SIZEN]={0},fr[SIZEN]={0};
for(i=0;i<n;i++){
scanf("%d",&pos[i]);
rev[n-1-i]=pos[i];
}
maxl(pos,fp),maxl(rev,fr);
for(i=0;i<n;i++) if(fp[i]+fr[n-1-i]>ans) ans=fp[i]+fr[n-1-i];
ans--;//两边都算上了这个人,减掉
printf("%d\n",n-ans);
return 0;
}