40分求助
查看原帖
40分求助
263846
Liangjm楼主2021/4/20 18:26
#include<bits/stdc++.h>
using namespace std;

#define rep0(i,n)	for(int i=0;i<n;i++)
#define rep1(i,n)	for(int i=1;i<=n;i++)
#define REP(i,j,n)	for(int i=j;i<=n;i++)
#define REPG(i,x,h)	for(int i=h[x];~i;i=edge[i].next)
typedef unsigned long long ULL;
const int N=1e6+5;

ULL c[N],b[N];
int main(){
	ios::sync_with_stdio(false);
	
	int n=0,m;
	
	std::cin>>m;
	
	while(m--){
		int a,b;
		std::cin>>a>>b;
		
		if(a==1){
			int k=lower_bound(c+1,c+1+n,b)-c;
			cout<<k<<endl;
		}
		
		if(a==2){
			cout<<c[b]<<endl;
		}
		
		if(a==3){
			int k=lower_bound(c+1,c+1+n,b)-c;
			if(k==1)
				cout<<"-2147483647"<<endl;
			else
				cout<<c[k-1]<<endl;
		}
		
		if(a==4){
			int k=upper_bound(c+1,c+1+n,b)-c;
			if(k==n+1)
				cout<<"2141483647"<<endl;
			else
				cout<<c[k]<<endl;
		}
		
		if(a==5){
			int k=lower_bound(c+1,c+1+n,b)-c;
			if(k==n+1)
				c[++n]=b;
			else{
				for(int i=n;i>=k;i--){
					c[i+1]=c[i];
				}
				c[k]=b;
				n++;
			}
		}
	}

	return 0;
}

2021/4/20 18:26
加载中...