만드는 중입니다

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

세 명의 탐정

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

요약
각 접두사 길이 k마다 그 앞부분에서 서로 겹치지 않는 비감소 부분 수열을 최대 5개 골랐을 때의 원소 합의 최댓값을 구합니다.
난이도

어려움10점 중 9점

유형
동적 계획법, 분할 정복, 배열
정답자
아직 제출이 없습니다

문제

치탄다(Chitanda)는 nn개의 정수로 이루어진 수열 a1,a2,…,ana_1, a_2, \ldots, a_n을 가지고 있다. 그녀는 스카이워커트(Skywalkert)와 게임을 하려고 한다.

먼저 치탄다가 매개변수 kk를 고르고 ak+1,ak+2,…,ana_{k+1}, a_{k+2}, \ldots, a_n을 제거한다. 그러면 수열 aa에는 정확히 kk개의 정수가 남는다.

그다음 스카이워커트는 aa의 부분수열을 골라 aa에서 제거할 수 있다. 그가 고른 부분수열이 ap1,ap2,…,apma_{p_1}, a_{p_2}, \ldots, a_{p_m}이라면, 반드시 p1<p2<…<pmp_1 < p_2 < \ldots < p_m이고 ap1≤ap2≤…≤apma_{p_1} \le a_{p_2} \le \ldots \le a_{p_m}이어야 한다.

스카이워커트는 이 연산을 최대 5번까지 할 수 있다. 그의 점수는 이 연산들에서 고른 모든 정수의 합이다.

치탄다가 고를 수 있는 각 매개변수 kk에 대해, 스카이워커트가 얻을 수 있는 최대 점수를 구하라.

입력

첫 번째 줄에 테스트 케이스의 개수 TT(1≤T≤100001 \le T \le 10000)가 주어진다.

각 테스트 케이스의 첫 줄에는 수열의 길이 nn(1≤n≤1000001 \le n \le 100000)이 주어진다. 둘째 줄에는 수열의 원소 a1,a2,…,ana_1, a_2, \ldots, a_n(1≤ai≤1091 \le a_i \le 10^9)이 주어진다.

모든 테스트 케이스의 nn을 합하면 500000 이하이다.

출력

각 테스트 케이스마다 s1,s2,…,sns_1, s_2, \ldots, s_n을 공백으로 구분하여 한 줄에 출력한다. sis_i는 k=ik = i일 때 스카이워커트가 얻을 수 있는 최대 점수이다.

예제1

  1. 예제 1

    입력
    1
    8
    8 7 6 5 1 3 2 4
    
    예상 출력
    8 15 21 26 27 30 30 34