페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#10400
인터랙티브
채점 보류

숫자 블록 60s 1024MB

문제

\mathbf{N}개의 탑을 만들 예정이며, 각 탑은 정육면체 블록 \mathbf{B}개로 이루어진다. 블록은 한 번에 하나씩 놓는다. 탑은 아래에서 위로 쌓는다. 어떤 탑에 i번째로 놓인 블록은 그 탑의 아래에서부터 i번째 블록이 된다. 당신은 다음에 어떤 블록들이 나올지 보기 전에, 각 블록을 어느 탑에 놓을지 결정해야 한다. 또한 한 번 놓인 블록은 옮길 수 없다.

각 블록의 앞면에는 0부터 9까지의 10진수 숫자 하나가 적혀 있으며, 모든 탑은 숫자가 적힌 면이 모두 앞을 향하도록 쌓인다. 폰트 특성상 블록을 회전해 다른 숫자를 만들 수는 없다. (예: 6이 적힌 블록을 돌려 9로 만들 수 없고, 그 반대도 불가능하다.)

예를 들어 \mathbf{N}=3, \mathbf{B}=3이고 현재 탑들이 그림 1과 같은 상태라고 하자. 다음에 6이 적힌 블록이 나온다면, 당신에게는 두 가지 선택지가 있다. 블록이 두 개만 쌓여 있는 탑 위에 올리거나(그림 2), 세 번째 탑을 시작하는 것(그림 3)이다. 첫 번째 탑은 이미 블록이 \mathbf{B}개 쌓여 있으므로 그 위에 놓을 수 없다는 점에 유의하라.

2 towers having (1, 2, 3) and (4, 5) from top down

그림 1

2 towers having (1, 2, 3) and (6, 4, 5) from top down

그림 2

3 towers having (1, 2, 3), (4, 5), and (6) from top down

그림 3

쌓기가 끝난 뒤, 각 탑의 앞면에 적힌 \mathbf{B}자리 정수를 위에서 아래로 읽는다. 즉, 어떤 탑에서 마지막으로 놓인 블록의 숫자가 가장 높은 자리수(가장 중요한 자리수)이다. 이 정수들은 앞에 0이 몇 개든 붙을 수 있음에 유의하라. 그 다음 이 \mathbf{N}개의 정수를 모두 더해 건설 작업의 점수를 얻는다.

예를 들어 아래 그림 4에서 왼쪽부터 각 탑에 적힌 정수는 123, 345, 96이다. 따라서 이 건설 작업의 점수는 123 + 345 + 96 = 564가 된다.

3 towers having (1, 2, 3), (3, 4, 5), and (0, 9, 6) from top down

그림 4

각 블록의 숫자는 균등 무작위로 생성되며, 다른 어떤 정보와도 독립적이다. 정답으로 판정되기 위해서는, \mathbf{T}개의 테스트 케이스 전체에서 얻은 점수의 합이 적어도 \mathbf{P} 이상이어야 한다.


출처

GCJ 2021r1b C

로그인해야 코드를 작성할 수 있어요.