题意
给定 \(n\) 个人,这 \(n\) 个人的身份证为 \(1,2,...,N\)
现在会发生 \(Q\) 件事:
1
:出纳员会呼叫身份证最小且没有被呼叫过人的身份证号2 x
:身份证号为 \(x\) 的人会第一次来出纳处3
:输出身份证号最小且没呼叫过且没有来的人的身份证号
思路
容易发现,其实可以用一个 set
来记录每一个被呼叫且没有来的人的身份证号
代码
#include <bits/stdc++.h>
using namespace std;
int main(){
int n,q;cin>>n>>q;
set<int>s;
int Min=0;
while(q--){
int ops;cin>>ops;
if(ops==1){
Min++;
s.insert(Min);
}
else if(ops==2){
int x;cin>>x;
s.erase(x);
}
else{
set<int>::iterator it=s.begin();
cout<<*it<<endl;
}
}
return 0;
}
标签:ops,int,Min,身份证号,cin,呼叫,ABC294
From: https://www.cnblogs.com/williamYcY/p/17964040