야찌

NYPC 2022 · 본선

야찌는 원래 주사위를 가지고 하는 게임이지만, 이 문제에서는 카드 더미와 다섯 장의 종이를 이용한 게임이다. 이 문제에서 설명하는 규칙은 실제 야찌의 규칙과 다르다는 것을 유의하라.

카드 더미의 각 카드에는 11부터 66까지의 수 중 하나가 적혀 있고, 다섯 장의 종이는 11번부터 55번까지 번호가 붙어 있다.

이 게임의 목표는 다음 규칙을 따라서 야찌를 가장 많이 하는 것이다.

  1. 카드 더미의 카드를 위에서 55개 뽑아서 카드에 적힌 수를 11번부터 55번까지 다섯 장의 종이에 순서대로 적는다.
  2. 다음 과정을 최대 한 번 수행할 수 있다. 이 과정의 이름은 다시 뽑기이다.
    1. 한 장 이상 다섯 장 이하의 종이를 선택한다. 선택하는 종이가 연속할 필요는 없으며, 종이를 번호 순서대로 선택하지 않아도 된다.
    2. 선택한 종이에 적혀있는 수를 지운다.
    3. 선택한 종이의 개수만큼 카드를 뽑는다.
    4. 카드에 적힌 수를 차례대로 선택한 종이에 적는다.
  3. 다시 뽑기 과정을 마치고, 다섯 장의 종이에 적힌 수가 모두 같으면 야찌 한 번이다.
  4. 다시 과정 1로 돌아가서 게임을 이어할지, 아니면 여기서 게임을 종료할지 결정한다. 과정 1 ~ 4를 차례로 한 번 거치면 이를 한 턴이라고 한다.

덱에는 카드가 NN 개 있다. 그래서 다오는 카드를 최대 NN 번 뽑을 수 있다. 다오는 몰래 카드 덱을 다 조사했기 때문에 카드 덱에 있는 NN 개의 카드에 적힌 수를 순서대로 모두 알고 있다. 다오가 최대한 많은 야찌를 할 수 있는 방법을 구하는 프로그램을 작성하시오.

입력 형식

첫 줄에 덱의 카드 개수 NN이 주어진다. (5N10000005 \le N \le 1\,000\,000)

두 번째 줄에 카드에 적힌 수들이, 위쪽 카드부터, 길이 NN인 문자열로 주어진다. 이 문자열은 1부터 6까지 여섯 가지의 수로만 이루어져 있다.

출력 형식

첫 줄에 최대한 많은 야찌를 했을 때 야찌 횟수를 출력한다.

두 번째 줄에 야찌 횟수를 최대화하기 위해 필요한 총 턴 수 TT를 출력한다. (1TN51 \le T \le \frac{N}{5}) 이때, T=0T = 0을 출력하면, 채점 방식에 따른 부분 점수를 얻을 수 있다.

이후의 줄들에 각 턴에서 어떻게 플레이해야 하는지 턴 차례대로 출력한다.

ii 번째 턴에 대한 정보는 다음 양식으로 출력한다.

다시 뽑기의 정보는 다음 양식으로 한 줄에 출력한다:

만약, 답이 여러 가지인 경우 그중 아무거나 하나 출력한다.

예제 1

입력

5 12346

출력

0 1 Turn 1 0

예제 2

입력

8 11123111

출력

1 1 Turn 1 1 2 4 5

예제 3

입력

10 1234566666

출력

1 2 Turn 1 0 Turn 2 0

예제 설명

예제 1에서, 턴 수 T1T \ge 1이므로, 적어도 한 턴은 플레이해야 함에 유의하라.

예제 2에서, 다음과 같은 방법으로 야찌를 11 번 할 수 있다.

채점 방식

각 데이터에 대해, T=0T = 0이고 최대 야찌 횟수가 올바르면 80%80\%의 점수를 얻을 수 있다.

입력 케이스들은 다음과 같은 종류로 구별되며, 한 종류의 케이스를 다 맞혀야 그 종류에 배정된 점수를 받을 수 있다.

종류 1: 21

N15N \le 15

종류 2: 43

N50000N \le 50\,000

종류 3: 19

모든 카드에 1122만 적혀 있다.

종류 4: 17

추가적인 제한 조건이 없음.

해설