链接问题:http://www.spoj.com/problems/PRO/SPOJ 726代码:PRO错误的答案?
我做了什么
问题要求你从列表中选择的最小和最大元素,并把它添加到总,它使用heapq模块在Python解决这个问题虽然通过了提供的测试用例,但在提交之后给出了错误的答案。
我的问题
什么是我的代码错?
我的代码
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]是最小值。不能保证最大值是堆[-1]。测试用例通过可能是一个意外。我怀疑,如果你以正确的方式随机化了“4 10 5 5 1”,那么最终可能不会有10个。 – 2014-09-28 22:36:50