请各位大佬指教
下面是代码
#include <bits/stdc++.h>
using namespace std;
const int M = 1e4 * 5 + 5;
int dp_up[M], dp_down[M], a[M];
int ans_up = -1, ans_down = -1;
int main()
{
int n = 1;
while(cin >> a[n]){
dp_down[n] = dp_up[n] = 1;
n++;
}
n--;
for (int i = 2; i <= n; i++)
for (int j = 1; j < i; j++)
{
if (a[j] < a[i])
dp_up[i] = max(dp_up[i], dp_up[j] + 1);
if (a[j] >= a[i])
dp_down[i] = max(dp_down[i] , dp_down[j] + 1);
}
for (int i = 1; i <= n; i++)
{
ans_down = max(ans_down, dp_down[i]);
ans_up = max(ans_up, dp_up[i]);
}
cout << ans_down << endl << ans_up;
return 0;
}