Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- text = open('26-2.txt')
- n = int(text.readline())
- a = sorted([int(text.readline()) for i in range(n)])
- #n = 7
- #a = [13, 17, 5, 55, 61, 9, 10]
- #a = sorted(a)
- arhiv = 0.9*sum(a)
- sjatie = 0.8*sum(a)# идея в том, что мы сначала как будто добавляем в архив все сжатые файлы, потом прибавляем 0.2 файла,
- # чтобы получить несжатый файл
- svobodno = arhiv - sjatie#место в которое можем добавлять 0.2*a[i] и таким образом в архиве будут 0.8*a[i]+0.2a[i]
- #то есть целый несжатый файл
- i = 0
- k = 0.2*a[i]
- while svobodno - k >= 0:
- svobodno = svobodno - k
- i+=1#здесь будет храниться максимальное число несжатых файлов
- k = 0.2*a[i]#первый файл, который не помещается в архив не разжатым
- svobodno = svobodno+0.2*a[i-1] #определяем сколько места было на 0.2*(последний несжатый файл), берем i-1 потому
- # что a[i] уже не помещается и поседний несжатый файл добавленный в архив это a[i-1]
- max = 0
- for j in range(i-1, len(a)):
- if 0.2*a[j] <= svobodno:# могло быть условие if 0.2*a[j] and a[j]>=max,
- # но второе условие всегда выполняется в отсортированном массиве, поэтому его можно упустить
- max = a[j]
- print(i, max)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement