Προσωπικά μου φάνηκαν δύσκολα, ειδικά το θέμα Δ (εμένα μου πήρε κανά τέταρτο να το σκεφτώ και να το γράψω, άρα στα παιδιά...). Παραθέτω μια λύση, την έγραψα στα γρήγορα και σίγουρα δεν είναι η βέλτιστη. Χρησιμοποίησα επιπλέον λίστες για ευκολία, ξέρω ότι γίνεται και χωρίς αυτές. Συγγνώμη για τα greeklish.
w=input("Plithos vagoniwn: ")
v=input("Ogkos kivotiou: ")
QUE=[]
while v!=0:
QUE.append(v)
v=input("Ogkos kivotiou: ")
l1=[] #synoliko varos kivotiwn gia kathe vagoni
l2=[] #plithos kivotiwn gia kathe vagoni
wagon=1
while wagon<=w and QUE!=[]:
s=0;pl=0
kivotio=QUE[0]
while s+kivotio<=2000 and QUE!=[]:
QUE.pop(0)
s+=kivotio
pl+=1
if QUE!=[]:
kivotio=QUE[0]
l1.append(s)
l2.append(pl)
wagon+=1
for i in range(len(l1)):
print "To vagoni", i+1, "metefere", l2[i], "kivotia, synolikou varous", l1[i]
if QUE==[]:
s=0
for i in range(len(l1)):
s=s+l1[i]
print "Xrisimopoihthikan", len(l1), "vagonia, ta opoia meteferan kivotia synolikou ogkou", s
else:
s=0
for i in range(len(QUE)):
s+=QUE[i]
print "Paremeinan stin apothiki", len(QUE), "kivotia, synolikou ogkou", s