본문 바로가기

Algorithm

(C++) - 백준(BOJ) 11723 : 집합

반응형
#include <iostream>
#include <string.h>
using namespace std;
int M, S, n;
char k[10];
int main() {
    
    scanf("%d", &M);
    while (M--) {
        scanf("%s", k);
        if (!strcmp(k, "add")) {
            scanf("%d", &n); n--;
            S = (S | (1 << n));
        }
        else if (!strcmp(k, "remove")) {
            scanf("%d", &n); n--;
            S = (S & ~(1 << n));
        }
        else if (!strcmp(k, "check")) {
            scanf("%d", &n); n--;
            int c = (S & (1 << n));
            if (c) {
                puts("1");
            }
            else {
                puts("0");
            }
        }
        else if (!strcmp(k, "toggle")) {
            scanf("%d", &n); n--;
            S = (S ^ (1 << n));
        }
        else if (!strcmp(k, "all")) {
            S = (1 << 20) - 1;
        }
        else if (!strcmp(k, "empty")) {
            S = 0;
        }
    }
}