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

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

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

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



Не зарегистрирован
ссылка на сообщение  Отправлено: 20.01.21 23:11. Заголовок: #2693


Очень интересно в чем может быть у меня ошибка.
Ответ под A не сходится когда B - верный.
f = open('27-33a.txt') 
_sum = 0
r1,r2,r3 = 10000,10000,10000
for i in f:
a,b,c = map(int,i.split())
data=[a,b,c]; data=sorted(data)
if (data[1]-data[0]) % 4 == 1 and (data[1]-data[0])<r1:
r1 = (data[1]-data[0])
if (data[1]-data[0]) % 4 == 2 and (data[1]-data[0])<r2:
r2 = (data[1]-data[0])
if (data[1]-data[0]) % 4 == 3 and (data[1]-data[0])<r3:
r3 = (data[1]-data[0])
if (data[2]-data[0]) % 4 == 1 and (data[2]-data[0])<r1:
r1 = (data[2]-data[0])
if (data[2]-data[0]) % 4 == 2 and (data[2]-data[0])<r2:
r2 = (data[2]-data[0])
if (data[2]-data[0]) % 4 == 3 and (data[2]-data[0])<r3:
r3 = (data[2]-data[0])
_sum += data[1]
_sum += data[2]
print(_sum)
print(r1,r2,r3)
if _sum % 4 == 0:
print(_sum)
if _sum % 4 == 1:
print(_sum-r1)
if _sum % 4 == 2:
print(_sum-r2)
if _sum % 4 == 3:
print(_sum-r3)


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





Сообщение: 3
ссылка на сообщение  Отправлено: 21.01.21 22:05. Заголовок: У меня аналогичная с..


У меня аналогичная ситуация, ответ в А не сходится, хотя В - всё верно. Посмотрела программу автора на Питоне, она выдаёт массив из минимальных разностей [148, 41, 94, 107], не поленилась, вычислила всё в Экселе, 41 и 107 получается, а разностей 148 и 94 нету в принципе.
У меня ответ в А - 18284, а у вас?



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




Сообщение: 2337
ссылка на сообщение  Отправлено: 21.01.21 23:49. Заголовок: Оба подхода не учиты..


Оба подхода не учитывают, что оптимальная подходящая сумма может быть получена не одной, а несколькими заменами. Решение в файле 27data.zip это учитывает.

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



Сообщение: 2
ссылка на сообщение  Отправлено: 22.01.21 10:35. Заголовок: Поляков Поляков А гд..


Поляков Поляков А где можно найти данный файл?

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




Сообщение: 2343
ссылка на сообщение  Отправлено: 22.01.21 13:52. Заголовок: Любитель кодить пише..


Любитель кодить пишет:
 цитата:
А где можно найти данный файл?

Здесь: 27data.zip. А в начале файла ege27.doc приведен разбор подобной задачи и показано, как учесть множественные замены.

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



Не зарегистрирован
ссылка на сообщение  Отправлено: 27.01.21 01:39. Заголовок: Доброго времени суто..


Доброго времени суток!
Решаю эту задачу по следующей логике:
1) Во время считывания файла сортирую каждую "тройку чисел" по убыванию
2) Записываю каждое число в отдельный массив (их три)
Итого в первых двух массивах получаются самые большие числа в "тройках".
3) Складываю все числа в первом и во втором массиве и получаю 18474. Это самое большое число, которое только можно выбрать таким способом.
4) Конечно же оно не делится на 4, поэтому начинаю по очереди из 18474 в каждой "тройке" отнимать первый элемент и прибавлять третий , отнимать второй элемент и прибавлять третий (меняю по сути в каждой "тройке" первый элемент на третий или второй на третий и пересчитываю сумму)
5) Если получившийся результат делится на 4, то записываю в массив.
6) Нахожу максимальный элемент в массиве и это как раз ответ.
Таким образом, получается, что я за одну замену стараюсь найти такое число. С тестовым примером в задании такой трюк сработал. С примером в файле В тоже. Честно говоря, не понимаю за счет чего может получится число 18380. В моем случае заменами мы только уменьшаем результат. Значит выгоднее всего сделать одну замену, чтобы сумма была максимальной. За две мы еще сильнее уменьшим результат. У меня тоже получается ответ 18284 (за одну замену), как и у одного из пользователей выше
Объясните пожалуйста поподробнее каким образом тут может получиться число 18380 или где я не прав в своих рассуждениях. Решал похожие задания точно таким же способом, только с парами чисел и всегда срабатывало (во всех трех случаях). Тут тоже сработало на 2/3 примеров.

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




Сообщение: 2357
ссылка на сообщение  Отправлено: 27.01.21 19:34. Заголовок: ДмитрийТараскин пише..


ДмитрийТараскин пишет:
 цитата:
Решаю эту задачу по следующей логике:

Посмотрите разбор в начале этого файла. Там ищется оптимальный вариант с несколькими заменами.

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



Сообщение: 1
ссылка на сообщение  Отправлено: 27.01.21 02:00. Заголовок: Также, если вариант ..


Также, если вариант с несколькими заменами все-таки имеет место быть, приведите пожалуйста пример, который легко проверить "вручную" или в Excel и увидеть, что действительно, алгоритм с одной заменой и алгоритм с несколькими заменами дают разные результаты, причем с несколькими заменами результат более подходящий, чем с одной

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




Сообщение: 2356
ссылка на сообщение  Отправлено: 27.01.21 19:32. Заголовок: ДмитрийТараскин пише..


ДмитрийТараскин пишет:
 цитата:
если вариант с несколькими заменами все-таки имеет место быть, приведите пожалуйста пример, который легко проверить

Рядом.

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

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