蒟蒻求助,样例过了,但全WA,悬关
查看原帖
蒟蒻求助,样例过了,但全WA,悬关
1101962
xiao12chen楼主2024/2/25 14:11
#include<iostream>
#include<map>
#include<algorithm>
#include<cmath>
#include<set>
using namespace std;
set<int> m;
int n,a,b;
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a>>b;
		if(a==1){
			auto it=find(m.begin(),m.end(),b);
			if(it==m.end()){
				m.insert(b);
			}else{
				cout<<"Already Exist"<<endl;
			}
		}if(a==2){
			if(m.empty()){
				cout<<"Empty"<<endl;
				continue;
			}auto it=find(m.begin(),m.end(),b);
			if(it==m.end()){
				auto uit=upper_bound(m.begin(),m.end(),b);
				if(uit==m.end()){
					uit--;
					//cerr<<"answer:";
					cout<<*uit<<endl; 
					m.erase(*uit);
				}else{
					if(find(m.begin(),m.end(),b)==m.begin()){
						cout<<b<<endl;
						m.erase(b);
						continue;
					}
					auto lit=--uit;
					uit++;
					if(abs(b-*lit)>abs(b-*uit)){
						//cerr<<"answer:";
						cout<<*uit<<endl;
						m.erase(*uit);
					}else{
						//cerr<<"answer:";
						cout<<*lit<<endl;
						m.erase(*lit);
					}
				}
			}else{
				//cerr<<"answer:";
				cout<<b<<endl;
				m.erase(b);
			}
		}
	}
	return 0;
}

2024/2/25 14:11
加载中...