有没有好心人帮我加个二分
查看原帖
有没有好心人帮我加个二分
1164775
Jadonyzx楼主2024/4/6 16:55
#include<bits/stdc++.h>
#define int long long
#define maxn 100040
using namespace std;
int cnt,a[maxn],num,dp[maxn];
signed main(){
	while(cin>>num)a[++cnt]=num;
	if(cnt==0){
		cout<<0<<'\n'<<0;
		return 0;
	}
	dp[1]=1;
	for(int i=2;i<=cnt;++i){
		for(int j=i-1;j>=1;j--)
		{
			if(a[j]>=a[i])dp[i]=max(dp[i],dp[j]+1);
			else dp[i]=max(dp[i],1ll);
		}
	}
	int ans=0;
	for(int i=1;i<=cnt;++i)ans=max(ans,dp[i]);
	cout<<ans<<'\n';
	memset(dp,0,sizeof dp);
	for(int i=2;i<=cnt;++i){
		for(int j=i-1;j>=1;j--){
			if(a[i]>a[j])dp[i]=max(dp[i],dp[j]+1);
			else dp[i]=max(dp[i],1ll);
		}
	}
	ans=0;
	for(int i=1;i<=cnt;++i)ans=max(ans,dp[i]);
	cout<<ans;
	return 0;
}
2024/4/6 16:55
加载中...