На этом форуме отвечают на конкретные вопросы. Фраза «я не понимаю, как решать» — это не вопрос. На вопрос «как решить задачу №X» вас отошлют к материалам сайта kpolyakov.spb.ru. За бессвязный поток слов и неспособность формулировать свои мысли — бан.

Если у вас не сходится ответ на какую-то задачу, пожалуйста сразу представляйте свое «правильное» решение.
Программы "заворачивайте" в тэг [pre2]...[/pre2], при этом сохраняются все отступы и применяется моноширинный шрифт. Если у вас используется сочетание "[i]" для обозначения элемента массива или строки, ставьте пробел после открывающей скобки. Иначе система выделит все дальнейшее курсивом.

Для регистрации на форуме щелкните по ссылке «Вход-регистрация» вверху страницы. В открывшееся окошко «ник» введите свою фамилию на русском языке (например, Иванов). В окошко «пароль» введите придуманный вами пароль, состоящий из латинских букв и цифр. Поставьте галочку в окошке «зарегистрироваться, я новый участник» и нажмите кнопку «ОК».

АвторСообщение



Сообщение: 1
ссылка на сообщение  Отправлено: 20.03.22 18:45. Заголовок: Задание 26, № 2643 (Е. Джобс)



 цитата:
(№ 2643) (Е. Джобс) Робот складывает монеты в ящики. Задача робота заполнить как можно большее количество ящиков монетами в количестве 100 штук. Роботу по конвейеру поступают корзины с монетами. В каждой корзине может быть от 1 до 99 монет. Известно, что робот может высыпать в ящик содержимое не более двух корзин. Необходимо определить, сколько ящиков можно заполнить монетами по 100.
Входные данные представлены в файле 26-j1.txt следующим образом. В первой строке записано число N – количество корзин, в каждой из последующих N строк число K – количество монет в каждой корзине.
В качестве ответа дать одно число – количество ящиков, заполненными 100 монетами.
Пример входного файла:
7
10
44
66
90
65
47
34
При таких исходных данных можно заполнить только 2 ящика по 100 монет 10 + 90 и 66 + 34. Ответ: 2.


Приветствую. При решении возникла идея разделить список data на два списка: mnogo и malo (в одном значения больше или равно 50, в другом меньше), и через цикл проверять сумму элементов из каждого списка, если сумма равна 100, то увеличиваю значение переменной kolvo на 1, а значениям mnogo[ i ] и malo[j] присваиваю нуль. Ответ: 3810, когда на сайте 3845.
 
with open('26-j1.txt', 'r') as F:
data = F.readlines()
del data[0]
data = sorted(list(map(int, data)))
malo = []
mnogo = []
for i in range(0,len(data)):
if data[ i ]>= 50:
mnogo.append(data[ i ])
else:
malo.append(data[ i ])
mnogo = sorted(mnogo, reverse=True)
kolvo = 0
for i in range(0,len(mnogo)):
for j in range(0,len(malo)):
if mnogo[ i ] + malo[j] == 100:
kolvo += 1
mnogo[ i ] = 0
malo[j] = 0
print(kolvo)



Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 4 [только новые]





Сообщение: 2
ссылка на сообщение  Отправлено: 20.03.22 21:54. Заголовок: Ошибка найдена


Как оказалось, я допустил очевидную ошибку. При разделении списка на два других, я не учел того, что значение 50 уйдет только в один список, а значит проверить их (там несколько значений 50) попросту не было возможным, поскольку проверялась сумма элементов именно из двух списков.

Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 20
ссылка на сообщение  Отправлено: 26.03.22 18:19. Заголовок: Добрый день! Помогит..


Добрый день! Помогите, пожалуйста, разобраться, что делаю не так. Вот мое решение к данной задаче:
 
a = [int(x) for x in open('26-j1.txt')]
a = a[1:]
count = 0
for i in range(len(a)-1):
for j in range(i+1,len(a)):
if a[ i] + a[j] == 100:
count += 1
print(count)


Если я верно понял условие, требуется подсчитать количество пар элементов, в сумме дающих 100. Ответ получается 349056, с ответом не сходится.
В чем моя ошибка?

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Сообщение: 3410
ссылка на сообщение  Отправлено: 26.03.22 18:21. Заголовок: shervlad пишет: В че..


shervlad пишет:
 цитата:
В чем моя ошибка?

Вы считаете возможным, что одно значение из массива участвует в образовании нескольких пар. Попробуйте изучить решение, которое лежит на сайте. Там не все так просто.

___________________________________________________
Имей мужество пользоваться собственным умом. (И. Кант)
Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 21
ссылка на сообщение  Отправлено: 26.03.22 18:39. Заголовок: Поляков пишет: Вы с..


Поляков пишет:

 цитата:
Вы считаете возможным, что одно значение из массива участвует в образовании нескольких пар.


Да, действительно, это я не учел. Переписал код, все получилось. Спасибо за помощь!

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 2472
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет