1 solutions

  • -1
    @ 2024-7-14 22:51:15
    #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