import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class boj11723 {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
StringBuilder sb = new StringBuilder();
int M = Integer.parseInt(st.nextToken());
int S = 0;
while (M-- > 0) {
st = new StringTokenizer(br.readLine());
String str = st.nextToken();
int num = -1; // 유효하지 않은 값으로 num 초기화
if (!str.equals("all") && !str.equals("empty")) {
num = Integer.parseInt(st.nextToken());
}
switch (str) {
case "all":
S = (1 << 21) - 1; // 모든 비트 1로 변경
break;
case "empty":
S = 0; // 모든 비트 0으로 변경
break;
case "add":
S |= (1 << num); // num위치 비트를 추가 (or) 연산
break;
case "remove":
S &= ~(1 << num); // num위치 비트가 존재하지 않을 경우에만 제거 (nand) break;
case "check":
sb.append((S & (1 << num)) != 0 ? "1\n" : "0\n");
break; // num 위치 비트의 존재 여부 확인 (and) case "toggle":
S ^= (1 << num); // 비트를 toggle (xor) break;
}
}
System.out.println(sb);
}
}
Leave a comment