100分一半TLE求调,悬赏关注
查看原帖
100分一半TLE求调,悬赏关注
1258313
aochiao楼主2024/5/16 21:25

只要帮改正错误都有关注

#include<bits/stdc++.h>
using namespace std;
int a[100001],dp_d[100001],dp_u[100001],ans_d=-1,ans_u=-1,n=1;
int main(){
	while(cin>>a[n]) dp_d[n]=1,dp_u[n]=1,n++;
	n--;
	for(int i=2;i<=n;i++) for(int j=1;j<i;j++){
		if(a[j]>=a[i]) dp_d[i]=max(dp_d[i],dp_d[j]+1);
		if(a[j]<a[i]) dp_u[i]=max(dp_u[i],dp_u[j]+1);
	}
	for(int i=1;i<=n;i++){
		ans_d=max(dp_d[i],ans_d);
		ans_u=max(dp_u[i],ans_u);
	}
	cout<<ans_d<<endl<<ans_u;
	return 0;
}
2024/5/16 21:25
加载中...