만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

산과 골짜기

시간 제한2초메모리 제한512 MB

요약
0부터 9까지 숫자로 된 수열에서 구간 하나를 뒤집었을 때 가장 긴 비감소 부분수열의 길이가 최대가 되도록 하는 구간을 찾습니다.
난이도

어려움10점 중 8점

유형
동적 계획법, 문자열, 누적 합
정답자
아직 제출이 없습니다

문제

타우렌에게 길이가 nn인 정수 수열 AA가 있다 (1부터 번호를 매긴다). 타우렌은 AA의 구간 [l,r][l, r] (1≤l≤r≤n1 \le l \le r \le n)을 뒤집기를 원한다. 즉 Al,Al+1,…,ArA_l, A_{l+1}, \ldots, A_r을 Ar,Ar−1,…,AlA_r, A_{r-1}, \ldots, A_l로 바꾸어서 AA의 가장 긴 비감소 부분 수열의 길이를 최대로 만들고자 한다. 그 최대 길이와, 그 구간을 뒤집으면 이 길이를 달성하는 구간을 구하라.

길이가 mm인 비감소 부분 수열은 1≤x1<x2<…<xm≤n1 \le x_1 < x_2 < \ldots < x_m \le n이고 Ax1≤Ax2≤…≤AxmA_{x_1} \le A_{x_2} \le \ldots \le A_{x_m}을 만족하는 Ax1,Ax2,…,AxmA_{x_1}, A_{x_2}, \ldots, A_{x_m}이다.

입력

첫 줄에 테스트 케이스의 수 TT가 주어진다. 각 테스트 케이스는 다음과 같이 주어진다. 첫 줄에 정수 nn이 주어진다. 둘째 줄에는 공백 없이 이어 쓴 nn개의 정수 A1,A2,…,AnA_1, A_2, \ldots, A_n이 주어진다.

제약 조건: 1≤T≤1001 \le T \le 100, 1≤n≤1051 \le n \le 10^5, 0≤Ai≤90 \le A_i \le 9 (i=1,2,…,ni = 1, 2, \ldots, n). 모든 테스트 케이스의 nn의 합은 2⋅1052 \cdot 10^5을 넘지 않는다.

출력

각 테스트 케이스마다 정수 mm, ll, rr을 공백으로 구분하여 한 줄에 출력한다. 여기서 mm은 최대 길이이고, [l,r][l, r]은 뒤집을 구간이다.

힌트

첫 번째 예시에서 864852302의 구간 [1,8][1, 8]을 뒤집으면 032584682가 된다. 이때 가장 긴 비감소 부분 수열 중 하나는 03588이다. 두 번째 예시에서 203258468의 구간 [1,2][1, 2]를 뒤집으면 023258468이 된다. 이때 가장 긴 비감소 부분 수열 중 하나는 023588이다.

예제1

  1. 예제 1

    입력
    2
    9
    864852302
    9
    203258468
    
    예상 출력
    5 1 8
    6 1 2