Я не уверен в решении от слова совсем, но смотри... Читаем внимательно условие.
...КАЖДАЯ КОМАНДА СЫГРАЛА С КАЖДОЙ. Из ВСЕХ участвовавших команд 20% команд НЕ СМОГЛИ ОДЕРЖАТЬ ПОБЕДУ НИ В ОДНОМ ИЗ МАТЧЕЙ...
Теперь включаем логику. Допустим у нас есть 10 команд, которые сыграли между собой. 20% от 10 - 2. Получается у нас имеется 2 команды, которые проиграли ВО ВСЕХ МАТЧАХ. А теперь задаемся вопросом "это как?".
Если с остальными командами все понятно, то как они играя между собой могли проиграть 2 сразу? (Ведь очевидно, что может быть только один победитель и только один проигравший в матче) По условию - ничьи не было. Значит делаем вывод, что искать больше одной команды, которая проиграла всем - некорректно.
Число команд, которая дает нам от 20% одного аутсайдера - 5. Получаем, что если Катя сделала фото с каждой командой на турнире, то постов у нее будет тоже 5. А команда, которая проиграла всем - одна единственная.
Обозначим людей 1,2,5,10 по времени, затрачиваемому на переход через мост.
Вот последовательность переходов, гарантирующая минимальное время (время на каждый переход указано в скобках):
0. Все на исходной позиции: 1, 2, 5, 10 ⇔ — (0 мин.)
1. 1 и 2 идут на другой берег: 5, 10 ⇔ 1, 2 (2 мин.)
2. 1 возвращается: 1, 5, 10 ⇔ 2 (1 мин.)
3. 5 и 10 идут на другой берег: 1 ⇔ 2, 5, 10 (10 мин.)
4. 2 возвращается: 1, 2 ⇔ 5, 10 (2 мин.)
5. 1 и 2 идут на другой берег: — ⇔ 1, 2, 5, 10 (2 мин.)
Итого: 2 + 1 + 10 + 2 + 2 = 17 минут.
// Внимание! Если программа не работает, обновите версию!
procedure ЗаменаЦифры(Исходное,Заменяющее:int64; var Результат:string);
begin
var ИсхСтрока:=Исходное.ToString;
var ЗамСтрока:=Заменяющее.ToString;
Результат:=ИсхСтрока.Replace(ИсхСтрока.ToCharArray.Max,ЗамСтрока)
end;
begin
var КоличествоЧисел:=ReadInteger('Введите количество чисел для обработки:');
var ОчередноеИсходное,ОчередноеЗаменяющее:int64;
var РезультатЗамены:string;
Loop КоличествоЧисел do begin
Write('Введите исходное целое число: '); Read(Очередноеисходное);
Write('Введите целое число для замены: '); Read(ОчередноеЗаменяющее);
ЗаменаЦифры(ОчередноеИсходное,ОчередноеЗаменяющее,РезультатЗамены);
Writeln('Результат замены: ',РезультатЗамены)
end
end.
Пример
Введите количество чисел для обработки: 5
Введите исходное целое число: 15630
Введите целое число для замены: 8
Результат замены: 15830
Введите исходное целое число: 235235
Введите целое число для замены: 11
Результат замены: 23112311
Введите исходное целое число: 6
Введите целое число для замены: 352
Результат замены: 352
Введите исходное целое число: 999
Введите целое число для замены: 88
Результат замены: 888888
Введите исходное целое число: 12307347740
Введите целое число для замены: 131313
Результат замены: 12301313133413131313131340