1)Определить есть ли в массиве из 30 элементов хотя бы одна тройка соседних чисел, в которой средний элемент больше своих "соседей", т. е. предшествующего и последующего. В случае положительного ответа определить номера элементов первой из таких троек. Результат вывести на экран.
2)Опишите алгоритм подсчета максимального количества подряд идущих четных элементов в целочисленном массиве длины 30
Нужно оформить аналогично на питоне, я пока плохо разбираюсь в оформлении и могу выполнить решение только на паскале
Решение
1)const
N = 100500;
var
a: array[1..N] of integer;
i,index: integer;
begin
for i :=1 to N do
read(a);
index := -1;
for i := 2 to (N─1) do
if ((a > a[i─1]) and (a > a[i+1]) and (index=-1)) then index := i;
if (index = -1) then
write('Нет таких чисел')
else
write(index─1,' ',index,' ',index+1);
end.
2)const N=30;
var a: array[1..N] of integer;
MaxEven, NumEven, i: integer;
begin
MaxEven:=0;
NumEven:=0;
for i:=1 to N do
read(a);
for i:=1 to N do
if (a mod 2 = 0) then
NumEven:=NumEven+1
else begin
if NumEven>=MaxEven then
MaxEven:=NumEven;
NumEven:=0;
end;
if NumEven>=MaxEven then
MaxEven:=NumEven;
Writeln(MaxEven);
end.
var
a: array of real;
b: array of real;
a_sum, b_sum, i, n: integer;
a_values, b_values: real;
begin
randomize;
writeln('Введите количество туров: ');
readln(n);
a := new real[n];
b := new real[n];
a_sum := 0;
b_sum := 0;
writeln('Введите результаты первого спортсмена: ');
for i := 0 to n - 1 do
begin
readln(a_values);
a[i] := a_values;
end;
writeln('Введите результаты второго спортсмена: ');
for i := 0 to n - 1 do
begin
readln(b_values);
b[i] := b_values;
end;
writeln('Результаты первого спортсмена: ');
for i := 0 to n - 1 do
write(a[i], ' ');
writeln(#10);
writeln('Результаты второго спортсмена: ');
for i := 0 to n - 1 do
write(b[i], ' ');
writeln(#10);
for i := 0 to n - 1 do
if (a[i] > b[i]) then inc(a_sum) else
if a[i] = b[i] then begin inc(a_sum);inc(b_sum); end else
if (a[i] < b[i]) then inc(b_sum);
writeln('Первый спортсмен победил в ', a_sum, ' турах.', #10, 'Второй спортсмен победил в ', b_sum, ' турах.');
if (a_sum = b_sum) then writeln('В общем зачёте ничья!') else
if (a_sum > b_sum) then writeln('В общем зачёте побеждает первый спортсмен!') else
if (a_sum < b_sum) then writeln('В общем зачёте побеждает второй спортсмен!');
end.
n, m, t = map(int, input().split())
x = list(map(int, input().split()))
def build(name):
if name in built:
pass
elif B[A.index(name)] == ["0"]:
built.append(name)
else:
for i in B[A.index(name)][1:]:
if i not in built:
build(i)
built.append(name)
A = []
B = []
built = []
for i in range(0, n):
A.append(input())
B.append(input().split())
for i in range(0, B.count([])):
built.append(A[B.index([])])
A.pop(B.index([]))
B.pop(B.index([]))
[build(str(o)) for o in x]
print(len(built))
Объяснение:
htt ps://pastebin. com/cNBHaZJM