题解 | #火车摆放#
火车摆放
https://ac.nowcoder.com/acm/contest/44482/B
B题,看到很多大佬的线段树做法,补一个TreeSet的做法
set记录未摆出来的火车
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int m=sc.nextInt();
TreeSet<Integer> set=new TreeSet<Integer>();
for(int i=1;i<=n;i++) {
set.add(i);
}
for(int i=0;i<m;i++) {
int op=sc.nextInt();
int x=sc.nextInt();
if(op==1) {
if(set.contains(x)) {
set.remove(x);
}
}
else if(op==2) {
set.add(x);
}
else {
if(set.contains(x)) {
System.out.println(0);
continue;
}
Integer next=set.ceiling(x);
if(next==null) {
System.out.println(n-x+1);
}
else {
System.out.println(next-x);
}
}
}
}