만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

파티 준비

시간 제한2초메모리 제한1024 MB

요약
질문을 최대 7번만 사용해서, 지인이 0명이거나 2명 이상인 손님 한 명을 찾습니다. 각 질문은 고른 손님들과 지인 관계인 손님의 집합을 돌려줍니다.
난이도

보통10점 중 6점

유형
비트 연산, 구현
정답자
아직 제출이 없습니다

문제

팍 덩클렉은 자기 집에서 파티를 연다. 이 파티에는 N+MN + M명의 손님이 참석하며, 손님에게는 1번부터 N+MN + M번까지 번호가 붙어 있다. 1번부터 NN번까지는 남자 손님이고, N+1N + 1번부터 N+MN + M번까지는 여자 손님이다.

각 손님은 성별이 반대인 손님 중 0명 이상과 알게 된다. 손님 xx가 손님 yy와 알게 되면 손님 yy도 손님 xx와 알게 된다. 파티 시간이 짧아서 보통 각 손님은 정확히 한 명의 다른 손님과 알게 된다. 다른 손님과 전혀 알게 되지 않거나 두 명 이상의 다른 손님과 알게 된 손님을 비정상 손님이라고 한다.

명단을 확인한 팍 덩클렉은 남자 손님 수와 여자 손님 수가 다르다는 것을 알았다. 따라서 비정상 손님이 적어도 한 명은 있다. 팍 덩클렉이 비정상 손님을 한 명 찾도록 도와라.

팍 덩클렉에게 최대 7번까지 질문할 수 있다. 각 질문에서는 손님들의 집합을 지정한다. 팍 덩클렉은 집합에 속한 손님 중 적어도 한 명과 알게 된 손님들을 답한다. 즉, 손님들의 집합 AA를 질문하면, 손님 yy는 AA에 속한 어떤 손님 xx가 yy와 알게 된 경우에만 답에 포함된다.

예제1

  1. 예제 1

    입력
    3 5
    
    7 1 2 3 4 5 6 8
    
    4 4 5 6 8
    
    3 1 2 3
    
    2 1 4
    
    
    예상 출력
    
    ? 8 1 2 3 4 5 6 7 8
    
    ? 3 1 2 3
    
    ? 5 4 5 6 7 8
    
    ? 2 1 4
    
    ! 7