//PascalABC.NET версия 3.2, сборка 1389
//Если программа не запускается, то обновите версию
uses System.Linq;
begin
writeln('III');
var a := ReadArrInteger('Документы', ReadInteger('n=')).ToList;
writeln;
while a.Any() do
begin
write(a[0], ' ');
a.RemoveAt(0);
if not a.Any then break;
write(a.Last, ' ');
a.RemoveAt(a.Count - 1);
if not a.Any then break;
var n := 0;
if a.Count > 1 then n := a.Count div 2 - 1;
write(a[n], ' ');
a.RemoveAt(n);
end;
end.
Объяснение:
//PascalABC.NET версия 3.2, сборка 1389
//Если программа не запускается, то обновите версию
uses System.Linq;
begin
writeln('III');
var a := ReadArrInteger('Документы', ReadInteger('n=')).ToList;
writeln;
while a.Any() do
begin
write(a[0], ' ');
a.RemoveAt(0);
if not a.Any then break;
write(a.Last, ' ');
a.RemoveAt(a.Count - 1);
if not a.Any then break;
var n := 0;
if a.Count > 1 then n := a.Count div 2 - 1;
write(a[n], ' ');
a.RemoveAt(n);
end;
end.
Объяснение:
Поместить 2 (на сковородке 2- лепёшки)
Ждать 1 (обе лепёшки прожарились с одной стороны)
Убрать 1 (в тарелке - 1 полупрожаренная лепёшка и 3 обычных плюс в сковороде ещё 1 полупрожаренная лепёшка)
Перевернуть 1 (в тарелке - 1 полупрожаренная лепёшка и 3 обычных плюс в сковороде ещё 1 полупрожаренная лепёшка, лежащая на непрожаренной стороне) (в дальнейшем не комментирую действия)
Поместить 1
Ждать1
Убрать 1
Перевернуть 1
Поместить 1
Ждать1
Убрать 1
Перевернуть 1
Ждать1
Убрать 1
Перевернуть 1
Ждать1
Убрать 2
Говоря не алгоритмическим языком:
пронумеруем лепёшки цифрами 1 2 3 4 и 5
стороны лепёшек -a и A, b и B, c и C, d и D, e и E соответственно - тогда жарить будем следующим образом:
a b
B c
C d
D e
E A
Итого нам потребуется всего 5 минут.