아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

게리맨더링

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

요약
수열을 연속한 구간으로 나눌 때 합이 양수인 구간이 음수인 구간보다 많게 만들 수 있는지 판정한다.
난이도

보통10점 중 6점

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

문제

길이 NN인 수열 A_1,A_2,⋯ ,A_NA\_1, A\_2, \cdots, A\_N이 주어집니다. 이 수열을 원하는 개수의 연속된 구간으로 나누어서, 각 구간의 합을 계산합니다. 합이 양수인 구간의 개수가 합이 음수인 구간의 개수를 초과하도록 할 수 있을까요?

입력

첫 줄에 테스트케이스의 수 TT가 주어집니다. (1≤T≤10,000)(1 \le T \le 10\\,000)

각 테스트케이스의 첫 줄에 배열의 길이 NN이 주어집니다. (1≤N≤200,000)(1 \le N \le 200\\,000)

둘째 줄에 정수 A_1,A_2,⋯ ,A_NA\_1, A\_2, \cdots, A\_N이 공백으로 구분되어 주어집니다. (−109≤A_i≤109)(-10^9 \le A\_i \le 10^9)

입력에서 주어진 NN의 합은 200,000200\\,000을 넘지 않습니다.

출력

각 테스트케이스마다 한 줄에 하나씩, 구간의 합이 양수인 것의 개수가 음수인 것의 개수를 초과하도록 할 수 있다면 “YES”를, 아니면 “NO”를 출력하세요.

예제1

  1. 예제 1

    입력
    4
    4
    2 2 -100 -100
    5
    -2 3 -2 3 -2
    6
    -1 1 -1 1 -1 2
    7
    -3 1 -4 5 -9 2 -6
    
    예상 출력
    YES
    YES
    YES
    NO