만드는 중입니다

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

바람꽃 축제

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

요약
원형으로 선 플레이어들이 이웃을 하나씩 제거하고 그 값을 뺄 때, 마지막으로 남은 플레이어가 가질 수 있는 최댓값을 구합니다.
난이도

보통10점 중 6점

유형
수학, 구현
정답자
아직 제출이 없습니다

문제

몬드시티에서 바람꽃 축제가 곧 열린다! 사람들은 바르바토스와 사랑하고 아끼는 사람들을 위해 바람꽃을 준비하고 있다. 바람꽃 축제는 사람들 사이의 관계를 개선하는 기회이기도 하다. 출처: Genshin Impact Official. 축제 기간마다 서풍 기사단의 대단장 대리 Jean이 고안한 유명한 게임이 열린다. 게임에서는 1번부터 nn번까지 번호가 매겨진 nn명의 플레이어가 원형으로 서 있고, 각자 정수 하나씩을 들고 있다. 매 턴마다 플레이어 한 명이 제거된다. 플레이어가 한 명만 남으면 게임이 끝난다. 각 턴에서 남은 플레이어 수를 kk, 플레이어 ii가 들고 있는 정수를 a_ia\_i라고 하자. 서로 인접한 두 플레이어 xx와 (x mod k+1)(x \bmod k + 1)을 고르고, 플레이어 (x mod k+1)(x \bmod k + 1)을 게임에서 제거한다. 그러면 플레이어 xx가 들고 있는 정수는 a_xa\_x에서 (a_x−a_x mod k+1)(a\_x - a\_{x \bmod k + 1})로 바뀐다. 이 턴에서 플레이어 yy는 x<y≤kx < y \le k인 모든 yy에 대해 다음 턴에 플레이어 (y−1)(y - 1)이 되지만, 들고 있는 정수는 바뀌지 않는다. Jean은 매 라운드마다 플레이어를 최적으로 골라, 마지막에 남는 플레이어가 가질 수 있는 정수의 최댓값을 알고 싶어 한다.

입력

입력에는 여러 개의 테스트 케이스가 있다. 첫 줄에 테스트 케이스의 수 TT가 주어진다. 각 테스트 케이스는 다음과 같다. 첫 줄에 처음 플레이어 수 nn (1≤n≤1061 \le n \le 10^6)이 주어진다. 다음 줄에 nn개의 정수 a_ia\_i (−109≤a_i≤109-10^9 \le a\_i \le 10^9)가 주어진다. a_ia\_i는 시작할 때 플레이어 ii가 들고 있는 정수이다. 모든 테스트 케이스의 nn의 합은 10610^6을 넘지 않는다고 보장된다.

출력

각 테스트 케이스마다 한 줄에 가능한 정수의 최댓값을 출력한다.

힌트

첫 번째 샘플 테스트 케이스는 아래 전략을 따른다. 밑줄 친 정수는 각 턴에서 선택된 플레이어가 들고 있는 정수이다. {1‾,−3,2,−4‾}\{\underline{1}, -3, 2, \underline{-4}\} (x=4x = 4 선택) →\to {−3,2,−5‾}\{-3, \underline{2, -5}\} (x=2x = 2 선택) →\to {−3,7‾}\{\underline{-3, 7}\} (x=2x = 2 선택) →\to {10}\{10\}.

예제1

  1. 예제 1

    입력
    5
    4
    1 -3 2 -4
    11
    91 66 73 71 32 83 72 79 84 33 93
    12
    91 66 73 71 32 83 72 79 84 33 33 93
    13
    91 66 73 71 32 83 72 79 84 33 33 33 93
    1
    0
    
    예상 출력
    10
    713
    746
    779
    0