Задача "Семён и ожидание маршрутки" - Pascal
Формулировка задачи:
Иногда уехать на другой берег бывает очень сложно. В такие моменты Семён развлекает себя тем, что запоминает номера проезжающих мимо маршруток и пытается определить самую нерасторопную из них.
Семён ждёт уже N минут, и в i-ю минуту мимо него проезжала маршрутка с номером Ai. Семён обратил внимание, что все увиденные номера к текущему моменту появлялись как минимум дважды.
Теперь Семён хочет определить максимальное время между появлениями маршруток с одинаковым номером. Помогите ему удовлетворить своё любопытство.
Входные данные
Первая строка содержит целое число N (2 ≤ N ≤ 100000) — количество минут, в течение которых Семён наблюдает за маршрутками.
Вторая строка содержит N целых чисел Ai (1 ≤ Ai ≤ 100000) — номера проезжающих мимо маршруток. Каждый номер встречается не менее двух раз.
Выходные данные
Выведите одно целое число — максимальное время в минутах между последовательным появлением одинаковых номеров.
Примеры
входные данные
7
23 5 3 3 23 5 23
выходные данные
4
входные данные
5
2 2 1 2 1
выходные данные
2
Решение задачи: «Задача "Семён и ожидание маршрутки"»
textual
Листинг программы
var a:array[1..10000]of longint; i,n,t,rez,max:longint; begin readln(n); max:=0; for i:=1 to n do begin read(t); if a[t]=0 then a[t]:=i else begin rez:=i-a[t]; a[t]:=i; if rez>max then max:=rez; end; end; writeln(max); end.
Объяснение кода листинга программы
- Объявляется массив
a
размером 10000 элементов типа longint. - Объявляются переменные
i
,n
,t
,rez
,max
типа longint. - Считывается значение переменной
n
. - Устанавливается начальное значение переменной
max
равным 0. - Выполняется цикл от 1 до
n
.- Считывается значение переменной
t
. - Если элемент массива
a
с индексомt
равен 0, то присваивается значениеi
этому элементу. - В противном случае (если элемент массива не равен 0):
- Вычисляется разница между
i
и значением элемента массиваa[t]
и присваивается переменнойrez
. - Элементу массива
a[t]
присваивается значениеi
. - Если значение
rez
больше, чем значениеmax
, тоmax
присваивается значениеrez
.
- Вычисляется разница между
- Считывается значение переменной
- Выводится значение переменной
max
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д