fork download
  1. sucet, n = [int(_) for _ in input().split()]
  2. mlieko = [int(input()) for _ in range(n)]
  3.  
  4. vysl = sum(mlieko)
  5. for i in range(2**n): #2^n moznosti
  6. #binarny zapis cisla i predstavuje jednu moznost (1=zober danu flasu)
  7. objem = 0
  8. x, ind = i, 0 # x=i; ind = 0
  9. while x > 0:
  10. if x % 2 == 1:
  11. objem += mlieko[ind] #zober flasu na indexe IND
  12. x //= 2 #posun bitovo doprava
  13. ind += 1 #zvys index
  14. if objem >= sucet: #ak je aspon tolko, ako hladany sucet
  15. vysl = min(objem, vysl) #hladame najmennsie mozne mozne riesenie
  16. print(vysl)
  17.  
  18.  
Success #stdin #stdout 0.01s 27712KB
stdin
5859870 3
3141592
2718281
1000000
stdout
5859873