만드는 중입니다

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

PTSD

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

요약
1번부터 n번까지 번호가 붙은 병사를 여러 그룹으로 나누어, 그룹에서 두 번째로 강한 PTSD 병사들의 힘 값 합이 최대가 되도록 하는 문제입니다.
난이도

보통10점 중 7점

유형
그리디, 동적 계획법
정답자
아직 제출이 없습니다

문제

JB 왕국에는 번호가 1,2,⋯ ,n1, 2, \cdots, n인 병사 nn명이 있다. ii번 병사의 힘 값은 ii이다.

왕국에서 토너먼트가 열린다. 병사들은 각 병사가 정확히 한 그룹에만 속하도록 여러 그룹으로 나뉜다. 그룹에는 병사 한 명만 들어갈 수도 있다.

일부 병사는 외상 후 스트레스 장애(PTSD)를 앓고 있다. PTSD가 있는 병사는 자기 그룹에서 자신보다 힘 값이 큰 병사가 정확히 한 명일 때 불쾌해한다. 즉, 그 병사가 그룹에서 두 번째로 강한 경우이다.

왕 JB는 불쾌해하는 병사들의 힘 값의 합을 최대로 만들고자 한다. 병사들을 나누어 이 최댓값을 구하라.

입력

첫 줄에는 테스트 케이스의 개수를 나타내는 양의 정수 TT가 주어진다. 각 테스트 케이스는 다음과 같다.

첫 줄에는 병사의 수를 나타내는 정수 nn (1≤n≤1061 \le n \le 10^6)이 주어진다.

둘째 줄에는 길이가 nn이고 '0'과 '1'로만 이루어진 문자열 ss가 주어진다. ii번째 문자는 ii번 병사를 나타낸다. sis_i가 '1'이면 ii번 병사는 PTSD가 있다. 그렇지 않으면 PTSD가 없다.

모든 테스트 케이스의 nn의 합은 10610^6을 넘지 않는다.

출력

각 테스트 케이스마다, 불쾌해하는 병사들의 힘 값 합의 최댓값을 한 줄에 출력한다.

힌트

첫 번째 테스트 케이스의 유효한 분할은 [1, 2], [3, 4], [5]이다. 이 분할에서는 1번 병사와 3번 병사가 불쾌해한다. [1, 2], [3, 5], [4]도 유효한 분할이다.

두 번째 테스트 케이스의 유효한 분할은 [1, 2], [3, 4], [5, 6], [7, 8]이다.

세 번째 테스트 케이스의 유효한 분할은 [1, 3], [2, 4]이다.

네 번째 테스트 케이스의 유효한 분할은 [1, 2, 3, 4]이다.

예제1

  1. 예제 1

    입력
    4
    5
    10101
    8
    11111111
    4
    1100
    4
    0110
    
    예상 출력
    4
    16
    3
    3