Петя сидит на уроке и пишет в блокноте разные четвёрки чисел: или произвольные, или длины двух стороны прямоугольника, его площадь и периметр (только в таком порядке). Даны четыре числа. Проверь, могут ли они описывать прямоугольник. Если да, выведи "прямоугольник", если нет — "произвольные числа".
Ввод Вывод
2
3
6
10 прямоугольник
2
3
10
6 произвольные числа
Примечание: площадь прямоугольника со сторонами a и b равна a × b, периметр — 2 × (a + b).
Площадь прямоугольника со сторонами 2 и 3 — это 6, а периметр — 10. Так как Петя записывает свои четвёрки в определённом порядке, числа 2, 3, 6, 10 описывают прямоугольник, а 2, 3, 10, 6 Петя написал случайно.
begin
var lvl:=0;
var s:= '';
var predE:=false;
foreach var c in s do
if c='E' then begin
if predE then begin predE:=false; lvl+=1 end
else predE:=true
end
else
if c='B' then begin predE:=false; lvl+=1 end;
Writeln(lvl,' level')
end.
Результат выполнения программы
63 level
И второй вариант, "как не учат в школе":
// PascalABC.NET 3.1, сборка 1204 от 24.03.2016
begin
var s:= '';
Writeln(Regex.Matches(s,'E[EB]|B').Count,' Level')
end.
Результат выполнения аналогичный.