SPOJ 726代码:PRO错在答案?

时间:2014-09-26 18:21:55

标签: python python-2.7 python-3.x heap

链接到问题:http://www.spoj.com/problems/PRO/

我做了什么

问题要求你从列表中选择最小和最大元素并将其添加到总数中,它使用python中的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)

1 个答案:

答案 0 :(得分:0)

为什么你不使用列表而不是heapq?考虑:

inp.sort()

while len(inp) >= 2:

    Max = inp.pop(-1)
    Min = inp.pop(0)
    total += (Max-Min)