Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
193086 | zjx1015 | 合唱团 | C++ | 通过 | 100 | 0 MS | 260 KB | 529 | 2025-05-06 18:50:23 |
#include<bits/stdc++.h> using namespace std; int n; int a[105],dp1[105],dp2[105]; int main(){ scanf("%d",&n); for(int i=1;i<=n;i++)scanf("%d",&a[i]); for(int i=1;i<=n;i++){ dp1[i]=1; for(int j=1;j<i;j++) if(a[j]<a[i]) dp1[i]=max(dp1[i],dp1[j]+1); } for(int i=n;i;i--){ dp2[i]=1; for(int j=n;j>i;j--) if(a[j]<a[i]) dp2[i]=max(dp2[i],dp2[j]+1); } int maxn=0; for(int i=1;i<=n;i++)maxn=max(maxn,dp1[i]+dp2[i]); printf("%d",n-maxn+1); return 0; }