简单黄题set做法求调
  • 板块学术版
  • 楼主qyz123123
  • 当前回复4
  • 已保存回复4
  • 发布时间2024/4/20 13:53
  • 上次更新2024/4/20 15:51:59
查看原帖
简单黄题set做法求调
658726
qyz123123楼主2024/4/20 13:53

题目 P5250木材仓库

#include<cstdio>
#include<set>
using namespace std;

int T, opt, len;
set<int> se;

signed main()
{
	scanf("%d", &T);
	while (T--){
		scanf("%d%d", &opt, &len);
		if (opt==1){
			if (se.count(len)) puts("Already Exist");
			else se.insert(len);
		}
		else {
			if (se.empty()) puts("Empty");
			else if (se.count(len)){
				printf("%d\n", len);
				se.erase(len);
			}
			else {
				auto it = se.lower_bound(len);
				int len1=(*(--it)), len2=(*it);
				if (it==se.begin()){
					printf("%d\n", len2);
					se.erase(len2); 
				}
				else if (it==se.end()){
					printf("%d\n", len1);
					se.erase(len1);
				}
				else if (len2-len<len-len1){
					printf("%d\n", len2);
					se.erase(len2); 
				}
				else {
					printf("%d\n", len1);
					se.erase(len1);
				}
			}
		}
	}
	return 0;
}

为什么这段代码过不去呢?我调了一上午了

2024/4/20 13:53
加载中...