Series 23. Дано целое число N (> 2) и набор из N вещественных чисел. Набор называется пилообразным, если каждый его внутренний элемент либо больше, либо меньше обоих своих соседей (то есть является «зубцом»). Если данный набор является пилообразным, то вывести 0; в противном случае вывести номер первого элемента, не являющегося зубцом.

Решение на Python 3

import random

N = random.randrange(5,20)
#N = 100
print("N = ",N)

x_prev = random.randrange(1,10)
#print(1,":",x_prev)
x_curr = random.randrange(x_prev,x_prev+11)
#print(2,":",x_curr)
print(x_prev,end="; ")
print(x_curr,end="; ")
k = -1
saw = 0
for i in range(2,N):
if k == 1:
x_next = random.randrange(x_curr,x_curr+11)
else:
x_next = random.randrange(x_curr-10,x_curr)
k *= -1
#print(i+1,x_curr,":",x_next)
print(x_next,end="; ")

if saw == 0:
if not ((x_prev < x_curr and x_curr > x_next) \
or (x_prev > x_curr and x_curr < x_next)):
saw = i
x_prev = x_curr
x_curr = x_next

print()
if saw == 0:
print("saw: ", saw)
else:
print("not saw: ", saw)