Cod sursa(job #2550637)

Utilizator astroman389Claudiu Negru astroman389 Data 18 februarie 2020 22:10:05
Problema Subsir crescator maximal Scor 0
Compilator c-64 Status done
Runda Arhiva educationala Marime 1.46 kb
#include <stdio.h>
#include <stdlib.h>

FILE *fin, *fout;

void read_array(long int n, long int arr[])
{
    for(long int i = 0; i < n; i++)
    {
        fscanf(fin, "%ld ", &arr[i]);
    }
}

void find(long int n, long int a[])
{
    long int i = 0, v[n], vi = 0, vmax[n], nrmax = 0;
    while(i < n-1)
    {

        while((i < n-1) && (a[i] <= a[i+1]))
        {
            if(a[i] != a[i+1])
            {
                if(vi == 0)
                {
                    v[vi] = a[i];
                    vi++;
                    i++;
                    v[vi++] = a[i];
                }
                else
                {
                    v[vi++] = a[i+1];
                    i++;
                }
            }
            else
            {
                i++;
            }
        }
        if(vi > nrmax)
        {
            nrmax = vi;
            for(long int k = 0; k < vi; k++)
            {
                vmax[k] = v[k];
            }
        }
        i++;
        vi = 0;
    }

    fprintf(fout, "%ld\n", nrmax);
    for(long int j = 0; j < nrmax; j++)
    {
        fprintf(fout, "%ld ",vmax[j]);
        //printf("%d ", vmax[j]);
    }
}

int main()
{
    fin = fopen("scmax.txt","r");
    fout = fopen("scmax.out", "w");
    long int n;
    fscanf(fin,"%ld ",&n);
    long int a[n];

    read_array(n, a);
    find(n, a);

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