GRADUATION 비트 연산자 질문

  • songgj123
    songgj123

    GRADUATION

    이 문제를 풀면서 궁금한 점이 생겼습니다.

    input을 입력받아 비트를 체크할 때,

    선수 과목과 열리는 과목에 중복되는 값이 없을 거라 생각했기 때문에 xor 연산을 사용했습니다.

    그런데 오답이 나왔고,

    한참 고민하다가 or 연산으로 바꿔보니 정답이 됐습니다.

            for (int i = 0; i < N; i++)
            {
                cin >> r;
    
                while (r--)
                {
                    cin >> b;
                    pre[i] |= (1u << b);
                }
            }
    
            for (int i = 0; i < M; i++)
            {
                cin >> r;
    
                while (r--)
                {
                    cin >> b;
                    semester[i] |= (1u << b);
                }
            }
    

    디버깅을 해봐도 같은 값이 들어가는 걸로 보이는데

    왜 오답이 나오는 걸까요??


    7년 전
1개의 댓글이 있습니다.
  • Corea
    Corea

    문제의 입력 양식에는 "과목의 번호가 같은 입력이 주어지지 않는다"라는 언급이 없습니다.


    7년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.