记录编号 |
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;
- }