TLE100,求助
查看原帖
TLE100,求助
559016
TYHNB楼主2022/8/30 08:44
#include<bits/stdc++.h>
using namespace std;
int h[50005],n=0,f[50005],ans,p,k,s[50005];
int main(){
	int x;
	while(cin>>x){
		n++;
		h[n]=x;
		f[n]=1;
		p=0;
		for(int i=1;i<n;i++){
			if(h[i]>=h[n]&&f[n]<f[i]+1){
				f[n]=f[i]+1;
			}
		}
	  	ans=max(ans,f[n]);
		for(int i=1;i<=k;i++){
			if(s[i]>=h[n] && (s[p]>s[i]||p==0))p=i;
		}
		if(p==0){
			k++;
			p=k;
		}
		s[p]=h[n];
	}
	printf("%d\n%d\n",ans,k);
	return 0;
}
2022/8/30 08:44
加载中...