Форум » Выполнение и анализ алгоритмов для исполнителей » Задача 6417 неправильный ответ » Ответить

Задача 6417 неправильный ответ

1llumi: Ответ на сайте: 112 Правильный ответ: 111 Строка, с которой можно прийти к 111: 0111121111211121211121112212111211111211112111211211121111222112212112112121211111211211212122111211111121221111111111111122212122212211111112212112111121211111120

Ответов - 3

Поляков: Спасибо, ответ и решение исправлены.

ooopsididitagain: да, но как это доказать? у меня получилось, что если я случайным образом массив перемешал - тогда 111. Но хочется какое-то математическое или логическое доказательство

Ж: Сумма цифр строки при всех ее преобразованиях , кроме последнего (010-->00), не меняется. Последнее преобразование может быть сделано максимум 1 раз, т.к. появится комбинация 00. Изначально сумма цифр не менее 50*2+100+1 = 201. Эта сумма может только уменьшиться на 1. Первое простое число, большее 200 - это 211. Пример строки в коде (c='0'+'2'*49+'1'*111+'20) дает на выходе строку с такой суммой цифр. Значит, единиц было минимум 111. [pre2] c='0'+'2'*49+'1'*111+'20' while '00' not in c: c=c.replace('02','101',1) c = c.replace('11', '2', 1) c = c.replace('012', '30', 1) c = c.replace('010', '00', 1) print(sum(int(d) for d in c)) [/pre2]




полная версия страницы