Cod sursa(job #1528487)

Utilizator paul777Astalas Paul paul777 Data 19 noiembrie 2015 19:18:40
Problema Subsir crescator maximal Scor 20
Compilator c Status done
Runda Arhiva educationala Marime 1.15 kb
#include <stdio.h>
#include <stdlib.h>

int main()
{
    unsigned int n;
    FILE *fp;
   fp = fopen("scmax.in", "r");
   fscanf(fp, "%d", &n);
    int a[n];
    unsigned int i=0;
    int num;
    while(fscanf(fp, "%d", &num) > 0) {
        a[i] = num;
        i++;
    }
    fclose(fp);
    unsigned int j,lel,maxlen=1,maxpos=0,len;
    for(i=0; i<n;)
    {
        len=1;
        unsigned int nexti=n;
        unsigned int f=0;
        lel=i;
        for(j=i+1; j<n; j++)
        {

            if(a[lel]<a[j])
            {
                lel=j;
                len++;
            }
            else if((a[lel]>a[j])&&(f==0))
            {
                f++;
                nexti=j;

            }
        }
        if(len>maxlen)
        {
            maxlen=len;
            maxpos=i;
        }

        i=nexti;

    }
    lel=maxpos;
    fp = fopen("scmax.out", "w+");
   fprintf(fp,"%d\n",maxlen);
   fprintf(fp,"%d ",a[maxpos]);
    for(j=maxpos+1; j<n; j++)
    {


        if(a[lel]<a[j])
        {
            fprintf(fp,"%d ",a[j]);
            lel=j;
        }
    }
    fclose(fp);
    return 0;
}