Задание:
Группе людей требуется переправиться на другой берег реки. В их распоряжении только двухместная лодка. Для того чтобы всем переправиться на другой берег, решили действовать следующим образом. Двое отправляются на другой берег, а затем один из них возвращается назад. Эта процедура повторяется до тех пор, пока не пройдут все участники группы.
Группа включает N человек. Известно, что i-й участник группы может, управляя лодкой, переправиться на другой берег за ti секунд. Считается, что при переправе в лодке двух участников группы лодкой управляет менее расторопный из этой пары.
Для каждого участника группы время, требуемое для переправы в одном направлении, такое же, как и для переправы в обратном направлении.
Требуется создать программу для определения, за какое наименьшее время и каким образом все участники группы смогут переправиться на другой берег.
Пример. Для трех человек, каждый из которых может перебраться за 5, 5 и 10 мин. соответственно, результат будет 20 мин, и порядок переправ следующий (1 2 2), (2 3).
Алгоритм решения я себе представляю такой:
Находим человека, который может переправиться за наименьшее время. Затем этот человек будет поочередно перевозить всех людей. Брать одного, возвращаться назад и брать следующего.
Это верное решение? Помогите пожалуйста.