페이지를 불러오는 중…
해결한 사람
1
명
정답률
100.00
%
시간 제한
30000
ms
메모리 제한
1024
MB
영어 알파벳 대문자로 이루어진 문자열을 정렬된 순서로 만들고자 한다. 그러나 그 순서는 때로는 엄격히 증가하고 때로는 엄격히 감소해야 한다.
문자열의 첫 글자는 A여야 한다. 그 뒤에 문자열은 하나 이상의 문자 블록을 포함해야 한다. 번째 블록은 정확히 개의 문자를 포함해야 한다. 번째 블록의 각 문자는 가 홀수이면 문자열에서 그 앞의 문자보다 알파벳상 뒤에 있어야 하고, 가 짝수이면 그 앞의 문자보다 알파벳상 앞에 있어야 한다. 블록의 첫 글자에도 그 앞의 문자가 존재하지만, 그 문자는 블록 안에 있지 않다는 점에 유의하라. 이 규칙을 모두 따르는 문자열을 유효하다고 한다. 유효한 문자열은 여러 개일 수 있으며, 그중 알파벳순으로 첫 번째인 문자열을 찾고자 한다.
예를 들어 크기가 및 인 블록이 개 있다면, 문자열에는 정확히 개의 문자가 있어야 한다(그중 은 처음의 A을 위한 것이다). 문자열 XYZYBA, AZYCBA, AYZYBB는 각각 요구되는 시작 문자 조건, 첫 번째 블록의 순서 조건, 두 번째 블록의 순서 조건을 위반하므로 이 경우에 유효하지 않다. 문자열 AYZYBA는 유효하다. 문자열 ABDCBA도 유효하며, 더욱이 알파벳순으로 첫 번째인 유효한 문자열이다.
블록의 크기가 주어질 때, 모든 유효한 문자열의 목록에서 알파벳순으로 첫 번째인 유효한 문자열을 출력한다. 주어진 제한 내의 모든 입력에 대해 적어도 하나의 유효한 문자열이 존재함을 보일 수 있다.
시간 제한: 10초. 메모리 제한: 1 GB. . 모든 에 대해 .
.
.
입력의 첫 줄에는 테스트 케이스의 수 가 주어진다. 이어서 개의 테스트 케이스가 주어진다. 각 테스트 케이스는 두 줄로 설명된다. 테스트 케이스의 첫 줄에는 블록의 수를 나타내는 정수 하나 가 주어진다. 둘째 줄에는 각 블록이 가져야 하는 문자 수를 순서대로 나타내는 정수 개 이 주어진다.
각 테스트 케이스마다 Case #$x$: $y$를 포함하는 한 줄을 출력한다. 여기서 는 테스트 케이스 번호이며(1부터 시작), 는 알파벳순으로 첫 번째인 유효한 문자열이다. 적어도 하나의 유효한 문자열이 존재함이 보장된다.
3
2
2 3
2
5 1
1
2
Case #1: ABDCBA
Case #2: ABCDEFA
Case #3: ABC
Copyright Google LLC; sourced from the Google Coding Competitions Archive.
로그인 상태를 확인하는 중입니다.