救救!
查看原帖
救救!
226332
冘木楼主2020/6/5 17:20
#include<bits/stdc++.h>
using namespace std;
const int N=100005;
int f[N];
int l1[N],l2[N];
int main(){
	int n=0;
	while(scanf("%d",&f[n])!=-1){
		n++;
	}
	int len1=0,len2=0;
	l2[++len2]=l1[++len1]=f[0];
//	for (int i=0;i<n;i++) cout<<f[i]<<" ";
	for (int i=0;i<n;i++){
		if (f[i]>l1[len1]){
			l1[++len1]=f[i];
		}else *lower_bound(l1+1,l1+1+len1,f[i])=f[i];
		if (f[i]<l2[len2]){
			l2[++len2]=f[i];
		} *upper_bound(l2+1,l2+1+len2,f[i],greater<int>())=f[i];
	}
	printf("%d\n%d\n",len2,len1); 
	return 0;
} 

为什么我只有110分啊。。。

2020/6/5 17:20
加载中...