1 solutions
-
1
#include <bits/stdc++.h> using namespace std; int a[1001],dpa[1001],n,dpb[1001],ans1,ans2,ans,k; int main(){ scanf("%d",&k); while(k--){ ans1 = 0; memset(dpa,0,sizeof(dpa)); memset(dpb,0,sizeof(dpb)); ans2 = 0; scanf("%d",&n); for(int i = 1;i<=n;i++)scanf("%d",&a[i]); for(int i = 1;i<=n;i++){ dpa[i] = 1; for(int j = 1;j<i;j++) if(a[j]<a[i])dpa[i] = max(dpa[j]+1,dpa[i]); ans1 = max(ans1,dpa[i]); } for(int i = n;i>0;i--){ dpb[i] = 1; for(int j = n;j>i;j--) if(a[j]<a[i])dpb[i] = max(dpb[j]+1,dpb[i]); ans2 = max(ans2,dpb[i]); } ans = max(ans1,ans2); printf("%d\n",ans); } return 0; }
- 1
Information
- ID
- 747
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- 10
- Tags
- (None)
- # Submissions
- 6
- Accepted
- 2
- Uploaded By