86分求调
查看原帖
86分求调
713762
kkksc0x楼主2024/5/25 20:52
#include<bits/stdc++.h>
#define ll long long
#define r(x); freopen(x,"r",stdin); 
#define w(x); freopen(x,"w",stdout);
using namespace std;
ll n,m,t,a[100100],g[100100],f[100100];
int main(){
	ll qwq;
	while(cin>>qwq){
		a[++n]=qwq;
	}
	reverse(a+1,a+n+1);
	for(ll i=1;i<=n;i++){
		ll x=lower_bound(g+1,g+m+1,a[i])-g;
		if(x>m)g[++m]=a[i];
		else g[x]=a[i];
	}
	reverse(a+1,a+n+1);
	for(ll i=1;i<=n;i++){
		ll x=lower_bound(f+1,f+t+1,a[i])-f;
		if(x>t)f[++t]=a[i];
		else f[x]=a[i];
	}
	printf("%lld\n%lld",m,t);
	return 0;
}
2024/5/25 20:52
加载中...