아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Roaring Years

시간 제한30초메모리 제한1024 MB

요약
주어진 연도 Y에 대해, 십진 표기를 두 개 이상의 서로 다른 연속한 양의 정수를 증가하는 순서로 이어 붙인 수로 나타낼 수 있는 Y보다 큰 가장 작은 연도를 구한다.
난이도

보통10점 중 6점

유형
수학, 완전 탐색, 구현, 문자열 매칭
정답자
아직 제출이 없습니다

문제

2021년에는 100년 넘게 일어나지 않았던 일이 일어난다. 2021은 1920처럼 roaring year이다. 양의 정수 y로 표현되는 연도가 roaring year라는 것은, y의 십진 표기(앞의 0 없이)가 두 개 이상의 서로 다른 연속한 양의 정수의 십진 표기(앞의 0 없이)를 오름차순으로 이어 붙인 것이 될 때를 말한다. 이때 2021은 20과 21을 이어 붙인 것이므로 roaring year이다.

roaring year의 달력 세 장. 각 연도가 얼마나 roaring한지 표시되어 있다.

다른 roaring year의 예로는 12, 789, 910, 1234, 9899100이 있다. 2020은 roaring year가 아니었다. 2020으로 이어 붙여지는 두 개 이상의 양의 정수 목록은 [20,20]뿐인데, 이는 연속한 정수로 이루어지지 않기 때문이다. 마찬가지로 2019에 대해서는 [20,1,9], [201,9], [20,19] 세 목록만 있다. 앞의 두 개는 연속한 정수로 이루어지지 않고, 세 번째는 정수가 오름차순이 아니다. 따라서 2019도 roaring year가 아니었다. 마지막 예로, 778은 roaring year가 아니었는데 [7,78]과 [77,8]은 연속한 정수로 이루어지지 않고 [7,7,8]은 서로 다른 정수로 이루어지지 않기 때문이다.

현재 연도(roaring year일 수도 있고 아닐 수도 있다)가 주어질 때, 다음 roaring year가 무엇인지 구하라.

입력

입력의 첫 줄에는 테스트 케이스의 수 T가 주어진다. 그다음 T개의 줄이 이어지며, 각 줄은 테스트 케이스 하나를 나타내고 정수 Y 하나를 포함한다. Y는 현재 연도이다.

출력

각 테스트 케이스마다 Case #x: z를 한 줄에 출력한다. x는 테스트 케이스 번호(1부터 시작)이고, z는 Y보다 엄격히 큰 첫 번째 roaring year이다.

제한

  • 1 ≤ T ≤ 100.

힌트

마지막 샘플 케이스에서 102는 roaring year가 아니다. [10,2]는 연속한 정수의 목록이 아니며, [1,02]를 쓰기 위해 2를 앞에 0을 붙여 쓸 수는 없기 때문이다.

예제1

  1. 예제 1

    입력
    4
    2020
    2021
    68000
    101
    
    예상 출력
    Case #1: 2021
    Case #2: 2122
    Case #3: 78910
    Case #4: 123