Cod sursa(job #978695)

Utilizator StefansebiStefan Sebastian Stefansebi Data 29 iulie 2013 15:21:58
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.03 kb
#include<fstream>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int v[100], best[100], i, j, n;


int main() {
    fin >> n;
    for (i = 0; i < n; i++)
        fin >> v[i];
    for (i = 0; i < n; i++)
        best[i] = 1;
    for (i = 1; i < n; i++) {
        for (j = i + 1; j < n; j++) {
            if (v[j] > v[i] and best[j] < best[i] + 1)
                best[j] = best[i] + 1;
        }
    }
   // for (i = 0; i < n; i++)
     //   fout << best[i];
     int maxi = -1; int p;
     for (i = 0; i < n; i++){
        if (best[i] > maxi){
            maxi = best[i];
            p = j;
        }
     }
    fout << maxi << '\n';
    int t = maxi; int ant = 99999; int i1 = 0; int b[1000];
    while (t >= 1){
        i = 0;
        while (best[i] != t)
            i++;
        while (v[i] > ant)
            i++;
        //fout << v[i] << " ";
        b[i1] = v[i]; i1++;
        ant = v[i];
        t--;
    }
    for (i = i1 - 1; i >= 0; i--)
        fout << b[i] << " ";
}