벨라루스 국립대학교
시간 제한2초메모리 제한512 MB
비트마다 주어진 표 c(i, x_i, y_i)로 두 수의 비트를 합치고, A와 B의 모든 쌍 (a, b)에서 나오는 f(a, b) 값의 개수를 구합니다.
문제
벨라루스 국립대학교 학생이라는 것은 그 자체로 자랑스러운 일이다. 알고리즘 이론 수업을 듣는 학생은 기말고사에 응시하기 전에 어려운 문제를 많이 풀어야 한다. 다음은 그중 하나다.
양의 정수 과, 각각 0 또는 1일 수 있는 개의 정수 가 주어진다 (, , ).
0 이상 이하의 두 정수 , 를 생각하자. , 를 각각의 이진 표현이라 하자 (). 로 정의한다. 역시 0 이상 이하의 정수이다.
두 다중집합 , 가 주어졌을 때, , 인 모든 쌍 에 대해 값들의 다중집합을 구하라.
입력
첫 줄에 정수 ()이 주어진다.
둘째 줄에는 4자리 이진 문자열 개가 주어진다. 번째 문자열은 , , , 의 값을 이 순서대로 담고 있다.
다음 두 줄은 각각 다중집합 와 를 나타낸다. 다중집합은 개의 정수 로 기술되며, 는 다중집합에 들어 있는 수 의 개수이다 (, ). 다중집합에는 이 외의 수가 없다.
출력
개의 정수를 한 줄에 출력하라. 각 정수는 결과 다중집합에서 각 수의 개수이다.
힌트
첫 번째 예제에서는 와 이 주어진다. 에 대해 가 성립한다. 따라서 결과 다중집합에 들어 있는 수는 하나뿐이다.