경인 국가의 행사

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

요약
도시별 득표를 조정해 X가 총 득표에서 이기고 Y가 더 많은 도시에서 이기는 경우가 존재하는지 판정하고, 존재하면 그 득표 배분을 출력한다.
난이도

보통10점 중 6점

유형
그리디, 수학, 구현, 완전 탐색
정답자
아직 제출이 없습니다

문제

2024년, shake! 나라가 건국되었다. 건국을 맞아 shake! 나라는 초대 대통령을 선출하고자 하며, XX 후보와 YY 후보, 총 22명의 후보가 당선을 놓고 경쟁하게 된다. shake! 나라는 총 NN개의 도시로 이루어져 있으며 ii번 도시에는 A_i(1≤i≤N)A\_{i}(1\leq i \leq N)명의 국민들이 거주하고 있다. 민주주의 국가인 shake! 나라는 대통령을 뽑기 위한 선거 방식을 고민하던 중, 수연이와 현빈이가 각자 아이디어를 내게 되었다.

  1. 수연이의 방식

    • shake! 나라의 국민들이 투표를 진행하고, 각 국민들이 거주하는 도시와 관계 없이 표를 합산한다.
    • 최종적으로 더 많은 표를 얻은 후보가 당선된다.
  2. 현빈이의 방식

    • shake! 나라의 국민들이 투표를 진행하고, 각 국민들의 표는 국민들이 거주하는 도시의 표에 합계된다.
    • 각 도시마다 더 많은 표를 얻은 후보가 해당 도시에서 승리한다.
    • 최종적으로 더 많은 도시에서 승리한 후보가 당선된다.

예를 들어, 33개의 도시에 각각 801801명, 556556명, 500500명이 살고 있고, 투표 결과가 아래와 같다고 해보자.

후보11번 도시22번 도시33번 도시
XX650650100100180180
YY151151456456320320

만약 선거를 수연이의 방식으로 진행하게 된다면 XX 후보는 650+100+180=930650+100+180=930표, YY 후보는 151+456+320=927151+456+320=927표를 받아 XX 후보가 당선된다. 반면 현빈이의 방식으로 선거를 진행하게 되면, XX 후보는 11번 도시에서만 승리하고, YY 후보는 22, 33번 도시에서 승리하여 YY 후보가 당선된다.

모든 국민이 투표에 참여하며 하나의 후보에게만 투표를 할 수 있을 때 선거 진행을 수연이의 방식으로 하면 XX 후보가, 현빈이의 방식으로 하면 YY 후보가 승리하는 경우를 찾아보자. 단, 투표가 동률이라면 두 후보 모두 패배한 것으로 생각한다.

입력

첫 번째 줄에 테스트 케이스의 개수 TT가 주어진다.(1≤T≤100,000)(1\leq T\leq 100\\,000)

다음 줄부터 각 테스트 케이스의 정보가 주어진다. 하나의 테스트 케이스는 두 개의 줄로 이루어져 있으며, 첫 번째 줄에 shake! 나라의 도시 수 NN이 주어진다. (1≤N≤106)\left(1\leq N \leq 10^{6}\right)

두 번째 줄에 각 도시에 사는 국민의 수를 나타내는 정수 A_1,A_2,…,A_NA\_{1},A\_{2},\dots,A\_{N}이 공백으로 구분되어 주어진다. (1≤A_i≤109)(1\leq A\_{i}\leq 10^{9})

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

출력

각 테스트 케이스마다 shake! 나라의 선거 진행을 수연이의 방식으로하면 XX 후보가, 현빈이의 방식으로하면 YY 후보가 승리하는 경우가 존재한다면, 첫 번째 줄에 YES를 출력하고 두 번째 줄에 11번부터 NN번 도시까지 XX 후보가 얻은 표의 수를, 세 번째 줄에 YY 후보가 얻은 표의 수를 공백으로 구분하여 출력한다.

그렇지 않다면 첫 번째 줄에 NO를 출력한다.

가능한 경우가 여러 개라면, 그중 아무거나 출력한다.

예제1

  1. 예제 1

    입력
    2
    3
    801 556 500
    3
    1 1 2
    
    예상 출력
    YES
    650 100 180
    151 456 320
    NO