题目 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;
}
为什么这段代码过不去呢?我调了一上午了