Очень надо Саша очень любит кататься на самокате на памп-треке(Памп-трек — специальная велосипедная трасса, представляющая собой чередование ям, кочек и контруклонов и не содержащая ровных участков). Но в зависимости от ширины горок, ему приходится выбирать самокаты разной длины(чтобы не застрять на вершине Саше определить ширину наименьшей горку, чтобы выбрать правильный самокат, т.е. на выделенном участке трека была бы точка, которая находилась бы строго выше начала и строго выше конца выделенного фрагмента трека.
Формат ввода
Первая строка входных данных содержит число N - количество опор трека. Следующие N строк содержат информацию о высотах опор при движении от начала к концу трека. Все числа натуральные, не превосходящие 10 в степени 5
Формат вывода
Программа должна вывести два числа - номер первой и последней подходящей опоры. Опоры нумеруются числами от 1 до N. Если фрагмента, удовлетворяющего условиям, не существует, программа должна вывести одно число 0. Если подходящих ответов несколько, нужно вывести любой из них.
Пример 1
Ввод Вывод
7 3 6
18
10
15
20
20
10
3
var
s, wd: string;
n, pt: integer;
begin
Write('Введите строку: ');Readln(s);
n := Length(s); pt := 1;
repeat
// Пропускаем все символы до первого непробельного
while pt <= n do
if s[pt] = ' ' then Inc(pt) else break;
if pt <= n then begin
// Выделяем очередное слово
wd := '';
while pt <= n do
if s[pt] <> ' ' then begin wd := wd + s[pt]; Inc(pt) end
else break;
if (wd <> '') and (LowCase(wd[1]) in ['м'..'я']) then Writeln(wd)
end
until pt > n;
end.
Тестовое решение:
Введите строку: **А роза упала на лапу Азора **
роза
упала
на
А вот так версия 3.0 позволяет решить задачу "по-современному":
// PascalABC.Net 3.0, сборка 1066
begin
var s:=ReadString('Введите строку: ');
Writeln('Результат: ',s.ToWords(' ').Where(x->x[1] in ['м'..'я']))
end.
Тестовое решение:
Введите строку: **А роза упала на лапу Азора **
Результат: [роза,упала,на]