0分求调,急!
查看原帖
0分求调,急!
1004798
OftenSendACat楼主2023/11/8 18:32

我已经尽力了,样例能过,自己造的数据能过:

#include<iostream>
#include<set>
using namespace std;
#define ll long long
ll n;
ll f;
ll x;
set <ll> se;
ll len;
int main(){
	cin >> n;
	for(ll i = 1;i <= n;i ++){
		cin >> f >> x;
		if(f == 1){
			len = max(len,x);
			if(se.count(x)){
				cout << "Already Exist" << endl;
			}
			else{
				se.insert(x);
			}
		}
		else if(f == 2){
			if(se.empty()){
				cout << "Empty" << endl;
			}
			else if(se.count(x)){
				cout << x << endl;
				se.erase(x);
			}
			else{
				ll tmpm = x + 1;
				ll tmpn = x - 1;
				while(!se.count(tmpn) && tmpn >= 0){
					tmpn --;
				}
				while(!se.count(tmpm) && tmpm <= len){
					tmpm ++;
				}
				if(tmpn == -1){
					cout << tmpm << endl;
					se.erase(tmpm);
				}
				else if(tmpm == len + 1){
					cout << tmpn << endl;
					se.erase(tmpn);
				}
				else{
					if(x - tmpn <= tmpm - x){
						cout << tmpn << endl;
						se.erase(tmpn);
					}
					else{
						cout << tmpm << endl;
						se.erase(tmpm);
					}
				}
			}
		}
	}
	return 0;
}
2023/11/8 18:32
加载中...