Cod sursa(job #1982843)

Utilizator Arsene_DenisaArsene Denisa Arsene_Denisa Data 20 mai 2017 13:39:41
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 1.15 kb
#include <iostream>
#include<stdio.h>

int v[100001], s[100001], r[100001];

using namespace std;

int main() {
    FILE *fin, *fout;
    int max, i, n, j, x, elem, s1, s2, maxim, poz, caut, valmax, cont;

    fin=fopen("scmax.in", "r");
    fout=fopen("scmax.out", "w");
    fscanf( fin, "%d", &n);
    for(i=1;i<=n;i++) {
            fscanf( fin, "%d", &v[i]);
            maxim=0;
    for(j=1;j<=i;j++) {
           if(v[j]<v[i]) {
              if(s[j]>maxim) {
                    maxim=s[j];
              }
           }
    }
    s[i]=maxim+1;
    }
    max=0;
    for(i=1;i<=n;i++) {
          if(s[i]>max) {
                max=s[i];
                poz=i;
          }
    }
    fprintf( fout, "%d\n", max);
    caut=max-1;
    valmax=v[poz];
    r[max]=valmax;
    cont=max-1;
    for(i=poz-1;i>=1;i--) {
        if(s[i]==caut) {
            if(v[i]<valmax) {
             r[cont]=v[i];
             valmax=v[i];
             caut--;
             cont--;
            }
        }
    }
    for(i=1;i<=max;i++) {
        fprintf( fout, "%d ", r[i]);
    }
    fclose( fin );
    fclose( fout );

    return 0;
}