#embody <bits/stdc++.h>
utilizing namespace std;
int secondLis(int arr[], int n)
{
vector<int> dpL(n, 1);
vector<int> dpC(n, 1);
for (int i = 0; i < n; i++) {
for (int j = 0; j < i; j++) {
if (arr[i] <= arr[j])
proceed;
if (dpL[j] + 1 > dpL[i]) {
dpL[i] = dpL[j] + 1;
dpC[i] = dpC[j];
}
else if (dpL[j] + 1 == dpL[i])
dpC[i] += dpC[j];
}
}
int maxLength = 0;
for (int i : dpL)
maxLength = max(i, maxLength);
int rely = 0;
for (int i = 0; i < n; i++) {
if (dpL[i] == maxLength)
rely += dpC[i];
}
if (rely > 1) {
return maxLength;
}
else {
return maxLength - 1;
}
}
int major()
{
int arr[] = { 1, -4, 3, 5, 9 };
int n = sizeof(arr) / sizeof(arr[0]);
printf("Size of second longest growing "
"subsequence is %dn",
secondLis(arr, n));
return 0;
}