【求助】set0分
查看原帖
【求助】set0分
856518
niepandou楼主2023/2/1 23:46
#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
#include <set>

using namespace std;

set<int> q;
int n;
int main()
{
	cin >> n;
	for (int i = 0;i < n;++i)
	{
		int ret, len;
		cin >> ret >> len;

		if (ret == 1)
		{
			if (q.find(len) == q.end()) q.insert(len);
			else puts("Already Exist");
		}
		else
		{
			if (q.find(len) != q.end())
			{
				cout << len << endl;
				q.erase(len);
			}
			else if (q.size() >= 2)
			{
				int out1 = *q.lower_bound(len);
				int out2 = *(--q.lower_bound(len));
				if (out1 - len > len - out2)
				{
					cout << out1 << endl;
					q.erase(out1);
				}
				else
				{
					cout << out2 << endl;
					q.erase(out2);
				}

			}
			else if (!q.empty())
			{
				cout << *q.begin() << endl;
				q.erase(q.begin());
			}
			else puts("Empty");

		}
	}
}
2023/2/1 23:46
加载中...