BOJ 29410 Дома

BOJ 29410 Дома

문제 링크:

문제 내용

NN개의 도로에 각각 aia_i개의 집이 있습니다. 각각의 집의 번지수를 이진수로 나타내는 표지판을 새로 만들려고 하는데, 0을 그리는 데는 aa 루블, 1을 그리는 데는 bb 루블이 듭니다.

각각의 집의 번지수가 주어질 때 모든 집의 표지판을 만드는 데 드는 비용의 총합을 출력하시오.

입력

첫 줄에는 도로의 개수 NNaa, bb의 값이 순서대로 주어집니다. (1N1001 \le N \le 100, 1a,b1001 \le a, b \le 100)

다음 NN줄에 걸쳐, 각 줄에는 먼저 ii번째 도로에 있는 집의 수 aia_i가 주어지고, 그 다음 그 도로의 aia_i개의 집의 번지수 cjc_j가 주어집니다. (1ai1001 \le a_i \le 100, 1cj1001 \le c_j \le 100)

출력

모든 집의 표지판을 만드는 데 드는 비용의 합을 한 줄에 출력합니다.

문제 풀이

스포일러

입력 형식에 주의하여 cjc_j들을 모두 입력받고, 이들을 이진수로 바꾼 다음 0의 개수와 1의 개수를 세고, 0의 개수에 aa, 1의 개수에 bb를 곱하여 둘을 더한 값을 출력하면 됩니다.

파이썬을 사용할 경우 bin의 결과에서 맨 앞의 0b를 빼지 않으면 0의 개수가 실제보다 하나 더 더해진다는 점에 주의합니다.

Last updated on