파티 램프
면접 대비시간 제한1초메모리 제한128 MB
모두 켜진 N개의 램프에서 네 개의 토글 버튼을 정확히 C번 눌러 도달할 수 있고, 켜짐 최대 2개와 꺼짐 최대 2개의 조건을 만족하는 모든 최종 구성을 사전순으로 출력한다.
문제
번부터 번까지 번호가 붙은 색색의 램프 개가 있습니다. 램프들은 네 개의 버튼에 연결되어 있습니다.
- 버튼 1 — 모든 램프의 상태를 반전합니다. 켜져 있던 램프는 꺼지고, 꺼져 있던 램프는 켜집니다.
- 버튼 2 — 홀수 번호 램프의 상태를 모두 반전합니다.
- 버튼 3 — 짝수 번호 램프의 상태를 모두 반전합니다.
- 버튼 4 — 번호가 () 꼴인 램프, 즉 번 램프의 상태를 반전합니다.
버튼을 누른 총횟수는 계수기 에 기록됩니다.
행사가 시작될 때 모든 램프는 켜져 있고 계수기 는 입니다.
계수기 의 값과 일부 램프의 최종 상태 정보가 주어집니다. 주어진 정보와 모순되지 않는 개 램프의 가능한 모든 최종 배열을, 서로 다른 배열마다 정확히 한 번씩 구하세요.
입력
입력은 램프 개수 , 버튼을 누른 횟수 , 그리고 일부 램프의 알려진 최종 상태를 나타내는 네 줄로 이루어집니다.
- 첫째 줄에는 정수 이 주어집니다.
- 둘째 줄에는 계수기 의 최종 값이 주어집니다.
- 셋째 줄에는 최종 배열에서 켜져 있다고 알려진 램프 번호들이 공백으로 구분되어 주어지고, 정수 로 끝납니다.
- 넷째 줄에는 최종 배열에서 꺼져 있다고 알려진 램프 번호들이 공백으로 구분되어 주어지고, 정수 로 끝납니다.
제약 조건:
- 켜져 있다고 알려진 램프는 최대 개입니다.
- 꺼져 있다고 알려진 램프는 최대 개입니다.
- 유효한 최종 배열이 항상 하나 이상 존재합니다.
출력
입력과 모순되지 않는 개 램프의 가능한 모든 최종 배열을 중복 없이 출력합니다.
각 배열은 한 줄에 개의 문자로 이루어진 문자열로 출력하며, 번째 문자는 번 램프의 상태를 나타냅니다. 0은 꺼짐, 1은 켜짐을 뜻합니다.
배열은 사전순 오름차순으로 출력하세요 (예를 들어 0000000000이 0101010101보다 먼저 옵니다).