Mein Python-Code schlägt in einigen Testfällen fehl (4 von 43) und ich verstehe nicht, warum?
Also habe ich versucht, diese Aufgabe zu lösen: https://training.olinfo.it/#/task/ois_avg/statement. Aber in einigen Testfällen ist meine Ausgabe offensichtlich falsch.
Aufgabe: Sie haben N Produkte, deren Preise in einer Liste P mit N Elementen angegeben sind (jedes Produkt hat einen Preis). Sie müssen den Preis einiger Produkte ändern, um einen Durchschnittspreis von K zu erhalten. K, N und alle Elemente von P sind positive ganze Zahlen. Wie groß ist die Mindestanzahl der Produkte, deren Preise geändert werden müssen?
Mein Code:
#input
N, K = map(int, input().strip().split())
P = list(map(int, input().strip().split()))
#main
ans = 0
average = sum(P)/N
difference = (average - K)*N
if average<K:
ans = 1
elif average == K:
ans = 0
else:
P.sort(reverse=True)
for i in range(N):
ans+=1
difference = difference - P[i]+1
if difference < 1:
break
#output
print(ans)
programmieren,
Informatik,
Python,
Algorithmus