1 solutions
-
-1
#include <math.h> #include <stack> #include <stdio.h> #include <iostream> #include <vector> #include <iomanip> #include <string.h> #include <algorithm> using namespace std; #define LL long long const int N =110; const int INF = 0x3f3f3f3f; int a[N],dp1[N],dpd[N]; int k, n, mx; int main() { cin >> k; while (k--) { mx = 0; cin >> n; for (int i = 1; i <= n; i++) cin >> a[i]; for (int i = 1; i <= n; i++) { dp1[i] = dpd[i] = 1; for (int j = 1; j < i; j++) { if (a[i] > a[j]) dp1[i] = max(dp1[i], dp1[j] + 1); if (a[i] < a[j]) dpd[i] = max(dpd[i], dpd[j] + 1); } mx = max(max(dpd[i], dp1[i]), mx); } cout << mx<<endl; } return 0; }
- 1
Information
- ID
- 771
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 5
- Tags
- # Submissions
- 20
- Accepted
- 13
- Uploaded By