fork download
  1. bank_cash = {
  2. 100: 0,
  3. 200: 3,
  4. 500: 1,
  5. 1000: 0,
  6. 2000: 4,
  7. 5000: 1,
  8. }
  9.  
  10. def give_cash(sum):
  11. if sum % 100 == 0:
  12. count = 0
  13. check_sum = 0
  14. sorted_cash = sorted(bank_cash, reverse=True) # <-словари в питоне не сортируются,
  15. check_dict = {} # только ключи в лист
  16. for bank_note in sorted_cash:
  17. if bank_cash[bank_note] == 0:
  18. count += 1
  19. continue
  20. check_sum += (sum // bank_note)*bank_note
  21. for i in range(count+1,len(sorted_cash)):
  22. rest_sum = sum - check_sum
  23. a = rest_sum // sorted_cash[i]
  24. if (
  25. bank_cash[sorted_cash[i]] == 0 or
  26. a == 0
  27. ):
  28. continue
  29. elif a >= bank_cash[sorted_cash[i]]:
  30. # БЛЯ НА 500 ТУТ СПОТЫКАЮСЬ СУКАААА ААА АА А АА АА А!!!!
  31. check_sum += sorted_cash[i] * bank_cash[sorted_cash[i]]
  32. check_dict[sorted_cash[i]] = bank_cash[sorted_cash[i]]
  33. continue
  34. elif rest_sum == 0:
  35. break
  36. count += 1
  37. if check_sum != sum:
  38. check_dict = {}
  39. check_sum = 0
  40. continue
  41. else:
  42. return check_dict
  43.  
  44. print(give_cash(6600))
Success #stdin #stdout 0.02s 9936KB
stdin
Standard input is empty
stdout
{}