У вас была ошибка в проверке элементов, вы искали кол-во элементов, которые меньше обоих своих соседей, вместо тех, которые больше, как просили в задании. Так же, при длине последовательности меньше трёх программа выводила 0 два раза - в начале, где вы проверяли длину последовательности, и в конце переменную s, которая тоже в таком случае равна нулю.
#include <iostream>
using namespace std;
int main()
{
const int time = 86400;
int a;
cout << "Enter the time in seconds elapsed since the beginning of the day" << endl;
cin >> a;
int hh = a % time / 3600;
int mm = a / 60 % 60;
int ss = a % 60;
int endhh, endmm, endss;
int tmp = hh * 3600 + mm * 60 + ss;
tmp = time - tmp;
endhh = tmp / 3600;
endmm = tmp / 60 - endhh * 60;
endss = tmp - endmm * 60 - endhh * 3600;
cout << "Now is: " << hh << " hh: " << mm << " mm: " << ss << " ss" << endl;
cout << "before the midnight: " << endhh << " hh: " << endmm << " mm: " << endss << " ss" << endl;
return 0;
}
Объяснение:
a = list(map(int, input().split()))
s=0
if len(a)<3:
pass
else:
for i in range(1,len(a)-1):
if a[i] > a[i-1] and a[i]>a[i+1]:
s+=1
print(s)
Ввод/вывод:
test 1
>>> 1 3 2 4 2
>>> 2
test 2
>>> 1 2
>>> 0
test 3
>>> 1 5 2 6 3 8 4 9 2 10 1
>>> 5
Объяснение:
У вас была ошибка в проверке элементов, вы искали кол-во элементов, которые меньше обоих своих соседей, вместо тех, которые больше, как просили в задании. Так же, при длине последовательности меньше трёх программа выводила 0 два раза - в начале, где вы проверяли длину последовательности, и в конце переменную s, которая тоже в таком случае равна нулю.