Cod sursa(job #2428863)

Utilizator TheRealGamerFat Vlad TheRealGamer Data 6 iunie 2019 18:28:55
Problema Subsir crescator maximal Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.29 kb
#include <iostream>
#include <fstream>
using namespace std;

ifstream in("scmax.in");
ofstream out("scmax.out");
int main(){
    int v[100], y[100] = {}, z[100], n, i = 1, j, nr = 0, aux = 0, maxim = 0, var, aux2 = 0, numar = 1;
    in>>n;
    for(i = 1; i <= n; i++)
        z[i] = -1;
    for(i = 1; i <= n; i++)
        in>>v[i];
    for(i = n; i >= 1; i--){
        for(j = i; j <= n; j++){
            if(v[i] < v[j]){
                if(aux2 == 0){
                    nr = y[j] + 1;
                    y[i] = nr;
                    z[i] = j;
                    aux = 1;
                    aux2 = 1;
                    var = nr;
                }
                if(var <= y[j]){
                    nr = y[j] + 1;
                    y[i] = nr;
                    z[i] = j;
                    maxim = nr;
                    j = n + 1;
                }
            }
            if(maxim < nr)
                maxim = nr;
        }

            if(aux == 0){
                y[i] = 1;
        }
        aux = 0;
        nr = 0;
        aux2 = 0;
    }
    out<<maxim<<endl;
    while(y[i] != maxim){
        i++;
    }
    out<<v[i]<<" ";
    j = i;
    while(numar < maxim){
        out<<v[z[j]]<<" ";
        j = z[j];
        numar++;
    }
}