set求助
查看原帖
set求助
524801
不食嗟来之食楼主2022/10/17 07:56
#include<iostream>
#include<map>
#include<cstdio>
#include<cstring>
#include<string>
#include<cmath>
#include<algorithm>
#include<set>
using namespace std;
set<int> s;
int n;
int main(){
	scanf("%d",&n);
	s.insert(0x7fffffff);
	for(int i=1;i<=n;i++){
		int opt;
		scanf("%d",&opt);
		switch(opt){
			case 1:{
				int x;
				scanf("%d",&x);
				if(s.count(x)){
					printf("Already Exist\n");
					continue;
				}
				else s.insert(x);
				break;
			}
			case 2:{
				int x;
				scanf("%d",&x);
				set<int>::iterator it1,it2;
				if(s.size()==1){
					printf("Empty\n");
					continue;
				}
				it1=s.lower_bound(x);
				if(*it1==x){
					printf("%d\n",*it1);
					s.erase(*it1);
					continue;
				}
				it2=it1;
				it2--;
				if(abs(*it2-x)<=abs(*it1-x)){
					printf("%d\n",*it2);
					s.erase(*it2); 
				}
				else printf("%d\n",*it1),s.erase(*it1);
				break;
			}
		}
	}
}
2022/10/17 07:56
加载中...