求助dalao 为什么全部re啊
查看原帖
求助dalao 为什么全部re啊
653811
__Aimer__楼主2022/9/26 22:17
#include<stdio.h>

int f[100010],a[100010],d[100010];

void main(){
	int max(int x,int y);
	int i=1,j,k,t=1,ans=0,m=1,p=0;
	while(scanf("%d",&a[i])==1){i++;}
	i--;
	for(j=1;j<=i;j++){
		f[j]=1;
		for(k=t;k>0;k--){
			if(a[j]<=a[d[k]]){
				f[j] = f[d[k]]+1;
				break;
			}
		}
		t = max(t,f[j]);
		d[f[j]] = j;
		ans = max(ans,f[j]);
	}
	printf("%d\n",ans);

	ans=1;
	t=0;
	for(j=1;j<=i;j++){
		f[j]=1;
		for(k=t;k>0;k--){
			if(a[j]>a[d[k]]){
				f[j] = f[d[k]]+1;
				break;
			}
		}
		t = max(t,f[j]);
		d[f[j]] = j;
		ans = max(ans,f[j]);
	}
	printf("%d",ans);
}

int max(int x,int y){
	return x>y?x:y;
}
2022/9/26 22:17
加载中...