就改了一个地方,一个AC一个全RE,怎么会这样
查看原帖
就改了一个地方,一个AC一个全RE,怎么会这样
790685
bluetored楼主2023/3/22 21:53
#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的

if(i!=ku.end()&&(*i)-temp<temp-(*j)) j=i;
			cout<<*j<<endl;
			ku.erase(j);
2023/3/22 21:53
加载中...