100分求助!!!
查看原帖
100分求助!!!
1069719
Enoch2013楼主2024/3/9 17:09

请各位大佬指教

下面是代码

#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;
}
2024/3/9 17:09
加载中...