[QUIZ#15] Raubkopierer (Python)

Raubkopierer

Erfahrenes Mitglied
Ich bin doch nicht etwa der Erste? :D

Anyway hier das kleine Skript:

Python:
#!/usr/bin/env python
#-*- coding: utf-8 -*-

import sys

if len(sys.argv) != 2:
    sys.exit("Usage: osternest.py inputfile")
input = open(sys.argv[1],"r")
lines = input.readlines()
max = int(lines.pop(0))
keys,values=[],[]
for integer in range(len(lines)):
    string = lines[integer].strip("\n ")
    if integer%2:
        values.append(string)
    else:
        keys.append(string)
stuff = dict(map(lambda x,y: (x,y),keys,values))
ratio = []
for key in stuff:
    stuff[key] = stuff[key].split(" ") # trennen von Masse und Nährwert
    ratio.append((key,float(stuff[key][1])/float(stuff[key][0]))) # Verhältnis Nährwert pro Gramm
ratio.sort(cmp=lambda x,y: cmp(x[1],y[1]),reverse=True) # Absteigend nach hohem Nährwertverhältnis
mass,kcal,items = 0,0,[]
for key in ratio:
    if mass+int(stuff[key[0]][0]) < max:
        mass+=int(stuff[key[0]][0])
        kcal+=int(stuff[key[0]][1])
        items.append(key[0])
    else:
        continue
output="Optimale Auswahl: "
for item in items:
    output+=item+", "
print output[:-2]
print "Masse:",str(mass),"g"
print "Nährwert:",str(kcal),"kcal"