Cod sursa(job #2895017)

Utilizator andreipirjol5Andrei Pirjol andreipirjol5 Data 28 aprilie 2022 18:15:48
Problema Subsir crescator maximal Scor 20
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.25 kb
#include <cstdio>

using namespace std;
FILE *fin, *fout;

#define NMAX 100000
int v[NMAX + 5];

int main()
{
    fin = fopen("scmax.in", "r");
    fout = fopen("scmax.out", "w");

    int n;
    fscanf(fin, "%d", &n);
    int i;
    int x, ant , m = 1;
    fscanf(fin, "%d", &x);
    ant = x;
    v[m] = x;

    for(i = 2; i <= n; i++)
    {
        fscanf(fin, "%d", &x);

        if(x != ant)
            v[++m] = x;

        ant = x;
    }
    n = m;

    /*for(i = 1; i <= n; i++)
        fprintf(fout , "%d " , v[i]);*/

    //fprintf(fout , "\n");

    int left, right, maxim, l, r, len;
    l = r = maxim = 0;
    left = 1;

    for(i = 1; i <= n; i++)
    {
        if(v[i] > v[i + 1])
        {
            right = i;
            //fprintf(fout , "%d %d\n" , left , right);

            len = right - left + 1;
            if(len > maxim)
            {
                maxim = len;
                l = left;
                r = right;
            }

            left = i + 1;

            //fprintf(fout , "%d %d\n" , left , right);
        }
    }

    fprintf(fout, "%d\n", maxim);
    for(i = l; i <= r; i++)
        fprintf(fout, "%d ", v[i]);

    fclose(fin);
    fclose(fout);
    return 0;
}