링크 : http://www.spoj.com/problems/PRO/SPOJ 726 코드 : PRO 잘못된 답변? 질문에 대한
내가
을 수행 한 문제는 목록에서 최소 및 최대 요소를 선택하고 총에 추가하도록 요청 무엇, 그것은 해결하기 위해 파이썬에서 heapq 모듈을 사용 질문은 제공된 테스트 케이스를 통과했지만 제출 후 잘못된 대답을 제공합니다.
내 질문
내 코드에 문제가 있습니까?
내 코드 왜 그냥 목록보다는 heapq를 사용하지 않는
import sys
from heapq import *
n = int(sys.stdin.readline())
inp = []
total = 0
for _ in range(n):
text = [int(x) for x in sys.stdin.readline().split()]
k = text[0]
del text[0]
inp.extend(text)
heapify(inp)
while(len(inp)>=2):
Max = inp.pop(-1)
Min = heappop(inp)
total += (Max-Min)
print(total)
힙 조건은 힙 [0]이 최소임을 보장합니다. 최대 값이 힙 (heap) [-1]이라는 보장은 없습니다. 테스트 케이스가 통과 한 것은 아마도 사고 일 것입니다. 나는 당신이'4 10 5 5 1'을 올바른 방향으로 무작위로 추출했다면, 끝이 아니라 10 점이 될 것이라고 생각합니다. –