로드 시리즈

시간 제한1초메모리 제한128 MB

요약
주어진 순서의 표지판들에서 1부터 연속으로 찾을 수 있는 마지막 수를 구하면서, 기억하는 수의 범위를 창 안으로 제한해 추적한다.
난이도

보통10점 중 6점

유형
시뮬레이션, 해시맵, 문자열, 구현
정답자
아직 제출이 없습니다

문제

돈(Don)과 잰(Jan)은 도로 위에서 함께 많은 시간을 보내며, 심심함을 달래려고 로드 시리즈(Road Series)라는 게임을 한다. 목표는 어떤 표지판에서 숫자 1을 찾고, 그다음 2, 그다음 3, ...을 차례로 찾는 것이다. 여러 자리 숫자는 그 자릿수들이 표지판에서 서로 바로 붙어 있어야 하며, 하나의 표지판이 여러 개의 숫자를 제공할 수 있다.

예를 들어 678-43 15라고 적힌 표지판에서는 6767, 7878, 4343, 1515를 쓸 수 있지만, 8484(두 자리 사이에 붙임표가 있음)나 3131(두 자리 사이에 공백이 있음)은 쓸 수 없다. 또한 한 자리 숫자 66, 77, 88, 44, 33, 11, 55와 세 자리 숫자 678678도 쓸 수 있다. 일반적으로, 어떤 숫자는 그 자릿수들이 표지판 글자 안에서 끊기지 않고 연속으로 나타날 때에만 그 표지판에서 사용할 수 있다.

숫자를 반드시 순서대로만 찾도록 하면 게임이 너무 느려서, 규칙을 다음과 같이 완화했다. nn을 마지막 완성 숫자라고 하자. 이는 11부터 nn까지의 모든 숫자를 이미 찾은, 가장 큰 값이다. (처음에는 마지막 완성 숫자가 00이다.) 또한 이미 본 숫자가 nn보다 너무 크지 않으면 기억해 둘 수 있게 했다. 구체적으로, 고정된 창 크기 ww에 대해 n+wn + w 이하인 범위(창) 안에서 본 숫자는 기억할 수 있다. 어떤 숫자를 볼 때 그 값이 n+wn + w보다 크면 그 숫자는 기억되지 않는다.

예를 들어 w=4w = 4이고 마지막 완성 숫자가 1919라고 하자. 그러면 2323까지의 숫자를 기억할 수 있다. Show time at 8:25, no one under 21 admitted라는 표지판에서는 2121은 쓸 수 있지만 2525는 쓸 수 없다(2323을 넘기 때문이다). 이어지는 표지판이 The FleaBag Hotel, phone 555-2520이라면, 여기 있는 2020 덕분에 2020이 완성되고, 이미 기억해 둔 2121도 완성되어 마지막 완성 숫자가 2121이 된다. 이제 창이 2525까지 닿고, 2525가 바로 그 같은 표지판에도 나타나므로 2525 역시 쓸 수 있다.

입력

첫 번째 줄에는 테스트 케이스의 수 mm이 주어진다. 각 테스트 케이스는 두 양의 정수 kk와 ww가 있는 줄로 시작한다. 여기서 kk(k≤1000k \le 1000)는 표지판의 개수, ww(w≤100w \le 100)는 창 크기이다. 그다음 kk개의 줄에 각각 표지판 하나의 글자가 주어진다. 표지판의 글자는 영숫자, 문장 부호, 공백이 임의로 섞여 있을 수 있으며, 길이는 최대 10001000이다.

출력

각 테스트 케이스마다 한 줄을 Case i: n h 형식으로 출력한다. 여기서 ii는 11부터 시작하는 테스트 케이스 번호, nn은 그 테스트 케이스의 표지판들로 얻을 수 있는 마지막 완성 숫자, hh는 창 안에서 여전히 기억하고 있는 가장 큰 숫자이다(nn을 넘는 숫자를 아무것도 기억하고 있지 않으면 hh는 nn과 같다).

예제1

  1. 예제 1

    입력
    4
    2 10
    13
    2
    2 10
    2
    13
    1 8
    Tomorrow, from 12 to 2, 4-4 basketball tournament! $3 entry fee.
    1 8
    Tomorrow, from 11 to 7, 4-4 basketball tournament! $3 entry fee.
    
    예상 출력
    Case 1: 3 3
    Case 2: 3 13
    Case 3: 4 12
    Case 4: 1 7