#include #include #include int N; // [位置][前の位置] = 最大長 int dp[100][100]; int A[100]; int main(){ int T; scanf("%d", &T); for(int _=0;_=0;j--){ if(A[j] < A[i]){ dp[j][i] = 2; res = std::max(res, 2); } for(int k=j+1;k= A[k] || A[k] >= A[l] || A[k] - A[j] >= A[l] - A[k]){ continue; } dp[j][k] = std::max(dp[j][k], dp[k][l] + 1); res = std::max(res, dp[j][k]); } } } // printf("%d: %d\n", i, res); // for(int j=0;j<10;j++){ // for(int k=0;k<10;k++){ // printf("%3d ", dp[j][k]); // } // puts(""); // } int x = 1; for(int j=i+1;j A[j]){ dp[j][i] = 2; x = std::max(x, 2); } for(int k=i;k