100分,求改(必关)
查看原帖
100分,求改(必关)
1571178
REZ_QWQ楼主2025/6/26 16:46
#include<bits/stdc++.h>
using namespace std;
const long long maxn=1e5+10;
long long dp_down[maxn],dp_up[maxn],a[maxn];
long long ans_down=-1,ans_up=1;
int main(){
	int n=1;
	while(cin>>a[n]){
		dp_down[n]=1;
		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_down[i]=max(dp_down[i],dp_down[j]+1);
			if(a[j]<a[i]) dp_up[i]=max(dp_up[i],dp_up[j]+1);
		}
	}
	for(int i=1;i<=n;i++){
		ans_down=max(dp_down[i],ans_down);
		ans_up=max(dp_up[i],ans_up);
	}
	cout<<ans_down<<endl<<ans_up;
	return 0;
}
2025/6/26 16:46
加载中...