고장 난 주소 버스
면접 대비시간 제한1초메모리 제한1024 MB
메모리 값과 질의마다 주어진 정상 배선 마스크가 있을 때, 설정된 비트가 모두 마스크 안에 드는 주소의 값을 합산합니다.
문제
Juku의 컴퓨터 메모리에는 개의 셀이 있으며, 주소는 의 수로 표시된다. 셀의 값을 읽으려면 먼저 그 셀의 주소를 주소 버스에 올려야 한다. 주소 버스는 16개의 병렬 배선으로 이루어져 있고, 주소의 각 비트마다 배선이 하나씩 대응한다. 예를 들어 주소 의 값을 읽으려면 를 이진수로 나타낸다. 이므로 4번, 1번, 0번 배선에 전압을 건다. 주소 을 읽을 때는 어떤 배선에도 전압을 걸지 않는다.
일부 배선은 고장 나 있다. 고장 난 배선에 전압을 걸면 메모리 칩이 이를 인식하지 못한다. 예를 들어 0번 배선이 고장 나면 은 0번 배선에 전압이 필요하므로 읽을 수 없다. 반면 은 읽을 수 있다.
메모리의 내용과 정상 배선의 집합이 주어졌을 때, 읽을 수 있는 모든 값의 합을 구하라.
입력
첫 줄에 메모리 값의 개수 ()과 질의의 개수 ()가 주어진다. 다음 개의 줄에는 0번부터 번 셀의 값이 한 줄에 하나씩 주어진다. 각 값은 이하의 음이 아닌 정수이다. 마지막 개의 줄에는 질의가 주어진다. 각 질의는 정상 배선에만 전압을 걸었을 때 얻는 주소 ()이다.
출력
출력은 정확히 개의 줄이어야 한다. 각 줄에는 해당 질의의 답, 즉 정상 배선의 집합이 질의의 로 주어졌을 때 읽을 수 있는 값들의 합을 출력한다.
힌트
질의 '0'에서는 모든 배선이 고장 났으므로 주소 0의 값 10만 읽을 수 있다. 질의 '15'에서는 처음 4개의 배선이 정상이므로 모든 값을 읽을 수 있다. 마지막 질의에서는 값 10과 1만 읽을 수 있다.