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