Cod sursa(job #1502396)

Utilizator hantescuHantascu Alexandru hantescu Data 14 octombrie 2015 16:57:09
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include <bits/stdc++.h>

using namespace std;
ifstream f ("scmax.in");
ofstream g ("scmax.out");

int n, v[100005], bts[100005], poz[100005], Max, p;

void citire(){
int i;
for(i = 0; i < n; i++){
    f>>v[i];
}

}

void rezolv(){
    int i, j;
    for(i = n - 1; i >= 0; i--){
            poz[i] = -1;
            bts[i] = 1;
        for(j = i + 1; j < n; j++){
            if(v[i] < v[j] && bts[i] < bts[j] + 1){
                bts[i] = bts[j] + 1;
                poz[i] = j;
                if(bts[i] > Max){
                    Max = bts[i];
                    p = i;
                }
            }
        }
    }
}

void afisare(){
    while(p != -1){
        g<< v[p]<< " ";
        p = poz[p];
    }
}

int main()
{
    f>>n;
    citire();
    rezolv();
    g<<Max<<'\n';
    afisare();
    return 0;
}