再问
查看原帖
再问
1252442
lucy2012楼主2024/4/27 15:39

只过了前半数据,这个怎么改捏?

#include<bits/stdc++.h>
using namespace std;
int sum1,sum2,dp1[10010],dp2[10010],a[10010]; 
int main(){
	int n=1;
	while(cin>>a[n]){
		dp1[n]=1;
		dp2[n]=1;
		n++;
	}
	n--;
	for(int i=2;i<=n;i++){
		for(int j=1;j<i;j++){
			if(a[j]>=a[i])
			    dp1[i]=max(dp1[i],dp1[j]+1);
			if(a[j]<a[i])
			    dp2[i]=max(dp2[i],dp2[j]+1);
		}
	}
	for(int i=1;i<=n;i++){
		sum1=max(dp1[i],sum1);
		sum2=max(dp2[i],sum2);
	}
	cout<<sum1<<endl<<sum2;
	return 0;
}
2024/4/27 15:39
加载中...