Cod sursa(job #2684851)

Utilizator SoulSnorterPetre Robert Cristian SoulSnorter Data 15 decembrie 2020 00:11:56
Problema Subsir crescator maximal Scor 15
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.46 kb
#include <stdio.h>
#include <vector>
#define NMax 100003

using namespace std;
long long int v[NMax];
int n;

vector<long long int> subsir;

int parcurgereArray(long long int v[])
{
    long long int length = 0;
    long long int max = 0;
    vector<long long int> temp;
    for (int i = 0; i < n; i++)
    {
        if (i == n - 1)
        {
            if (v[i - 1] < v[i])
            {
                length++;
                temp.push_back(v[i]);
                if (length > max)
                {
                    subsir.clear();
                    subsir = temp;
                    max = length;
                }
            }
        }
        if (v[i] > v[i + 1])
        {
            length = 1;
            temp.clear();
        }
        else if (v[i] == v[i + 1])
        {
            length--;
        }
        else
        {
            temp.push_back(v[i]);
            length++;
            if (length > max)
            {
                subsir.clear();
                subsir = temp;
                max = length;
            }
        }

    }


    return max;
}

int main()
{
    freopen("scmax.in", "r", stdin);
    freopen("scmax.out", "w", stdout);

    scanf("%d", &n);

    for (int i = 0; i < n; i++)
    {
        scanf("%d", &v[i]);
    }

    printf("%d\n", parcurgereArray(v));

    for (int i = 0; i < subsir.size(); i++)
    {
        printf("%d ", subsir[i]);
    }
}