// UVa 11456 - Trainsorting
#include <iostream>
using namespace std;
#define integer signed long long int
int main() {
int t;
for (cin >> t; t; t--) {
int n;
cin >> n;
integer a[2001];
int lis[2001], lds[2001], sol = 1;
for (int i = 0; i < n; i++)
cin >> a[i];
lis[n] = 0;
lds[n] = 0;
for (int i = n - 1; i >= 0; i--) {
lis[i] = 0;
lds[i] = 0;
for (int j = i + 1; j < n; j++) {
if (a[i] < a[j] && lis[j] > lis[i])
lis[i] = lis[j];
if (a[i] > a[j] && lds[j] > lds[i])
lds[i] = lds[j];
}
lis[i]++;
lds[i]++;
if (lis[i] + lds[i] > sol)
sol = lis[i] + lds[i];
}
cout << sol - 1 << endl;
}
return 0;
}
Thursday, December 24, 2015
UVa 11456 - Trainsorting
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment