tc = int(input()) for idx in range(1, tc+1): n, m = map(int, input().split()) # 화덕의 크기 n, 피자의 개수 m pizza = list(map(int, input().split())) # 만들 피자 가져오기 # 인덱스 같이 넣어줌 ex) [[7, 1], [2, 2], [6, 3], [5, 4] [3, 5]] pizza_info = [[pizza[i], i+1] for i in range(m)] fire = pizza_info[:n] # 화덕에 먼저 들어간 피자 pizza = pizza_info[n:] # 화덕에 아직 못들어간 피자 # 화덕에서 피자가 없어질때까지 반복 while fire: p, p_i = fire.pop(0) # 확인할 피자 pop # 줄어든 치즈 양 계산하여 치즈 다 안녹았으면 화덕에 다시 넣기 if p//2: fire.append([p//2, p_i]) # 다 녹았으면 새로운 피자 가져와서 화덕에 넣기 elif p//2 == 0 and pizza: fire.append(pizza.pop(0)) # 마지막으로 확인한 피자의 번호 출력 print('#{} {}'.format(idx, p_i))
'Algorithm > SW Expert Academy' 카테고리의 다른 글
[Python] 5105. 미로의 거리 (0) | 2021.09.23 |
---|---|
[Python] 5102. 노드의 거리 (0) | 2021.09.23 |
[Python] 1226. 미로1 (0) | 2021.09.23 |
[Python] 1225. 암호생성기 (0) | 2021.09.23 |
[Python] 4881. 배열 최소합 (0) | 2021.09.21 |