숨은 에이스

벤이 카드를 살펴본 순서가 주어지면 그 순서대로 최적 탐색이 진행되는 감소 삼중항 없는 덱 가운데 사전 순으로 가장 큰 덱을 복원합니다.

어려움9게임 이론그리디시뮬레이션조합론아직 제출이 없습니다시간 제한60초메모리 제한512 MB

문제

에이미는 값이 1부터 NN까지 하나씩 적힌 카드 NN장을 한 줄로 놓는다. 이때 값의 수열에 길이 3인 감소 부분수열이 생기지 않도록 놓는다. 예를 들어 1, 5, 4, 6, 3, 2로 놓는 것은 5, 3, 2가 감소 부분수열이므로 규칙에 어긋난다.

에이미는 이 카드 더미를 벤에게 준다. 벤은 길이 3인 감소 부분수열이 없다는 사실은 알지만 정확한 배열은 모른다. 벤은 값이 1인 카드를 찾으려 한다. 카드를 하나 골라 값을 확인하고, 값이 1인 카드를 찾을 때까지 이 과정을 되풀이한다. 매 단계에서 벤은 지금까지 확인한 값과 어긋나지 않는 배열을 모두 따진 뒤, 앞으로 확인해야 하는 카드 수의 최댓값이 가장 작아지는 카드를 고른다.

벤은 운이 나빠서 값이 1인 카드를 찾기까지 카드 NN장을 모두 확인했다고 한다. 벤이 카드를 확인한 순서가 주어질 때 각 카드의 값을 구하라. 가능한 배열이 여러 개면 사전순으로 가장 큰 것을 고른다.

배열 AA가 배열 BB보다 사전순으로 크다는 것은, 두 배열이 처음으로 달라지는 자리에서 AA의 값이 BB의 값보다 크다는 뜻이다.

입력

첫 줄에 테스트 케이스 수 TT가 주어진다. 각 테스트 케이스의 첫 줄에는 카드 수 NN이 주어진다. 다음 줄에는 벤이 카드를 확인한 순서를 나타내는 정수 NN개가 공백 하나로 구분되어 주어진다. ii번째 정수는 벤이 ii번째로 확인한 카드의 위치이고, 위치는 1부터 센다.

출력

각 테스트 케이스마다 "Case #x: y" 형식으로 한 줄씩 출력한다. xx는 1부터 시작하는 테스트 케이스 번호이고, yy는 첫째 카드부터 NN째 카드까지의 값을 공백 하나로 구분해 나열한 것이다.

제한

  • 1T1001 \le T \le 100
  • 1N3001 \le N \le 300
  • 확인 순서는 1부터 NN까지의 위치가 한 번씩 나오는 순열이다.
  • 주어진 확인 순서에 대해, 문제의 조건을 모두 만족하면서 벤이 카드 NN장을 모두 확인해야 하는 배열이 적어도 하나 존재한다.