heap으로 값이 작은것부터 정렬 시킨 뒤 누적합과 내 값을 비교해가며 왕이될 수 있는 값을 구해갔습니다.
import sys
input = sys.stdin.readline
from heapq import heappop, heappush
for test in range(int(input())):
n = int(input())
arr = list(map(int, input().split()))
heap = []
for idx, num in enumerate(arr):
heappush(heap, (num, idx))
total, answer = 0, []
while heap:
num, idx = heappop(heap)
if total >= num:
answer.append(idx + 1)
else:
answer = [idx + 1]
total += num
answer.sort()
print(len(answer))
print(*answer)
'practivceAlgorithm > codeforce' 카테고리의 다른 글
[Codeforce][Python] #702 F. Equalize the Array (0) | 2021.11.07 |
---|---|
[Codeforce][Python] #702 D. Permutation Transformation (0) | 2021.11.07 |
[Codeforce][Python] #702 C. Sum of Cubes (0) | 2021.11.07 |
[Codeforce][Python] #702 B. Balanced Remainders (0) | 2021.11.07 |
[Codeforce][Python] #702 A.Dense Array (0) | 2021.11.07 |