社区讨论

就改了一个地方,一个AC一个全RE,怎么会这样

P5250【深基17.例5】木材仓库参与者 1已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@lo2wa01c
此快照首次捕获于
2023/10/23 20:49
2 年前
此快照最后确认于
2023/10/23 20:49
2 年前
查看原帖
CPP
#include<iostream>
#include<algorithm>
//#include<cstring>
//#include<math.h>
//#include<queue>
//#include<stdlib.h>
//#include<vector> 
#include<set>
//#include<stack>
using namespace std;
int n;
set<int>ku;
int main(){
	int opt,temp;
	cin>>n;
	while(n--){
		cin>>opt>>temp;
		if(opt==1){
			if(ku.find(temp)!=ku.end()) cout<<"Already Exist"<<endl;
			else ku.insert(temp);
		}
		else if(ku.empty()){
			cout<<"Empty"<<endl;
		}
		else{
			set<int>::iterator i=ku.lower_bound(temp),j=i;
			if(j!=ku.begin())j--;
            /////////////////////修改的地方
			if(i!=ku.end()&&(*i)-temp>=temp-(*j)) i=j;
			cout<<*i<<endl;
			ku.erase(i);
		}
	}
	return 0;
}
下面时AC的
CPP
if(i!=ku.end()&&(*i)-temp<temp-(*j)) j=i;
			cout<<*j<<endl;
			ku.erase(j);

回复

1 条回复,欢迎继续交流。

正在加载回复...