Предмет: Информатика,
автор: зяма05
В плацкартном вагоне 54 места, пронумерованных числами от 1 до 54. Вагон разбит
на 9 купе. Первые 36 мест расположены по левую сторону от прохода, места 1–4 находятся
в первом купе, места 5–8 – во втором и т. д. В девятом купе находятся места с номерами 33–
36. По правую сторону от прохода находятся боковые места, их номера от 37 до 54, причём
они нумеруются в противоположном направлении: места 37 и 38 находятся напротив
девятого купе, а места 53 и 54 – напротив первого. Ниже приведена схема всех мест в вагоне.
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35
2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36
53 54 51 52 49 50 47 48 45 46 43 44 41 42 39 40 37 38
Группа школьников едет на олимпиаду и будет всю дорогу крутить спиннеры.
Поэтому им нужно купить места в нескольких подряд идущих купе вместе с прилегающими
боковыми местами. Даны номера свободных мест в поезде. Определите, какое наибольшее
число подряд идущих купе полностью свободны.
Программа получает на вход число N – количество свободных мест в вагоне
(0 ≤ N ≤ 54). Следующие N строк содержат номера свободных мест – различные числа от 1
до 54 в произвольном порядке, по одному числу в строке.
Программа должна вывести одно целое число – максимальное число подряд идущих
свободных купе (купе – 4 места слева от прохода и 2 боковых места) в этом вагоне.
Ответы
Автор ответа:
0
// PascalABC.NET
// Версия 3.3.5 сборка 1662 (29.04.2018)
begin
if n <= 36 then num := (n - 1) div 4
else num := 8 - (n - 37) div 2
end;
begin
var carr := ArrFill(9, 0);
for var i := 1 to ReadInteger do carr[num(ReadInteger)] += 1;
carr.AdjacentGroup.Where(t -> t[0] = 6).Select(t -> t.Count).Max.Println;
end.
Пример:
Ввод:
12
5 6 3 4 8 7 51 9 10 54 49 52
Вывод:
1
Похожие вопросы
Предмет: Математика,
автор: analove2014
Предмет: Физкультура и спорт,
автор: karinabartkova2
Предмет: Алгебра,
автор: Zefz
Предмет: Литература,
автор: Semionovtimofei