Решение задачи "Монотонный фрагмент " с Acmp

Без пояснения   Просмотров: 19


Задана последовательность натуральных чисел, завершающаяся числом 0. Требуется определить наибольшую длину монотонного фрагмента последовательности (то есть такого фрагмента, где все элементы либо больше предыдущего, либо меньше).

Код

#include <bits/stdc++.h>
 
using namespace std;
 
int main()
{
//    1 2 3 1 1  2 1 0
    int n, maxim = 1;
    cin >> n;
    vector<int> a;
    while(n){
        a.push_back(n);
        cin >> n;
    }
    vector<int> b(a.size(), 1);
    for(int i = 1; i < a.size(); ++i){
        if(a[i] > a[i - 1]){
            b[i] = b[i - 1] + 1;
            maxim = max(maxim, b[i]);
        }
    }
 
    vector<int> c(a.size(), 1);
    for(int i = 1; i < a.size(); ++i){
        if(a[i] < a[i - 1]){
            c[i] = c[i - 1] + 1;
            maxim = max(maxim, c[i]);
        }
    }
    cout << maxim;
    return 0;
}

         

 Администратор Photo Автор: Администратор


Отправить решение задачи
Чтобы отправить решение вам нужно войти в систему или зарегистрироваться

Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться