求助,样例过,一片RE
查看原帖
求助,样例过,一片RE
223620
Willan_Lian楼主2023/4/8 17:02

代码如下:

#include<iostream>
#include<cstdio>
using namespace std;
int m,maxn,n,a[1000005][5];
int ans1,k,s;bool p;
int main(){
	int x;
	while(scanf("%d",&m)) a[++n][1]=m,a[n][2]=1;
  	x=n;
	int tot=0;
	while(x>0){
		for(int i=2;i<=n;i++){
			maxn=0;
			if(!a[i][4]{
				for(int j=1;j<i;j++){
					if(a[j][1]>a[i][1]&&a[j][2]>maxn&&!a[j][4])
						maxn=a[j][2],a[i][3]=j;
					a[i][2]=maxn+1;
				}
			}
		}
		ans1=0,k,s=0;
		for(int i=1; i<=n; i++)
			if(a[i][2]>ans1) ans1=a[i][2],k=i;
		
		if(!p){
			p=1;
			cout<<ans1<<endl;
		}
		
		while(k>0){
			a[k][4]=1;
			k=a[k][3];
			s++;
		}
		x=x-s,tot++;
	}
	cout<<tot;
	return 0;
}
2023/4/8 17:02
加载中...