社区讨论

0分,求调,成功必关

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

讨论操作

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

当前回复
1 条
当前快照
1 份
快照标识符
@mi9s9j41
此快照首次捕获于
2025/11/22 12:22
3 个月前
此快照最后确认于
2025/11/22 13:37
3 个月前
查看原帖
CPP
#include<iostream>
#include<map>
using namespace std;
map<long long,long long> m;
long long n;
int main(){
	cin>>n;
	long long a,b;
	for(int i=1;i<=n;i++){
		cin>>a>>b; 
		if(a==1){
			if(m.find(b)==m.end()){
				m[b]++;	
			}
			else{
				cout<<"Already Exist"<<endl;
			}
		} 
		else{
			if(m.empty()){
				cout<<"Empty"<<endl;
			}
			else if(m.find(b)!=m.end()){
				cout<<b<<endl;
				m.erase(b);
			}
			else{
				m[b]++;
				map<long long,long long>::iterator it=m.find(b);
				map<long long,long long>::iterator it1;
				map<long long,long long>::iterator it2;
				if(it==m.begin()){
					it++;
					cout<<it->first<<endl;
					m.erase(it->first);
				}
				else if(it==--m.end()){
					it--;
					cout<<it->first<<endl;
					m.erase(it->first);
				}
				else{
					it1=++it;
					--it;
					--it;
					it2=it;
					if((it1->first-it->first)>(it->first-it2->first)){
						cout<<it2->first<<endl;
						m.erase(it2->first);
					}
					if((it1->first-it->first)<=(it->first-it2->first)){
						cout<<it1->first<<endl;
						m.erase(it1->first);
					}
				}
				m.erase(b); 
			}
		}
	} 
	return 0;
}

回复

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

正在加载回复...