2 solutions
-
4
包对的
#include<bits/stdc++.h> using namespace std; const int N=1010; int a[N],f[N],d[N]; int main() { int n; cin>>n; for(int i=1;i<=n;i++) { cin>>a[i]; } for(int i=1;i<=n;i++) { f[i]=1; for(int j=1;j<i;j++) { if(a[i]>a[j]) { f[i]=max(f[i],f[j]+1); } } } for(int i=n;i>=1;i--) { d[i]=1; for(int j=n;j>i;j--) { if(a[i]>a[j]) { d[i]=max(d[i],d[j]+1); } } } int res=0; for(int i=1;i<=n;i++) { res=max(res,f[i]+d[i]-1); } cout<<res; return 0; }
Information
- ID
- 977
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 5
- Tags
- (None)
- # Submissions
- 80
- Accepted
- 18
- Uploaded By