Cod sursa(job #822302)

Utilizator asstasticAsstastic asstastic Data 23 noiembrie 2012 11:00:51
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.19 kb
//cel mai lung subsir crescator dintr un sir neordonat de n elem, n<=1000
#include<iostream>
#include<fstream>

using namespace std;

int main()
{
    int n,i, d[1000], v[1000], j, max, max2, f[1000], pos, m, var, comp;
    ifstream f("scmax.in");
    ofstream g("scmax.out");
    f>>n;
    d[1]=1;
    for(i=1; i<=n; i++) f>>v[i];
    for(i=2; i<=n; i++){
             max=0;
             var=-1;
             for(j=i-1; j>=1; j--){
                      if(v[i]>v[j]) var=d[j]+1;
                      else if(v[i]==v[j]) var=d[j];
                      if(var>max) max=var;
                      }
             d[i]=max;}
    max2=-1000;
    for(i=1; i<=n; i++) if(d[i]>max2) {
             max2=d[i];
             comp=v[i];
             pos=i;}
    m=1;
    f[m]=comp;
    max2=max2-1;
    pos=pos-1;
    while(pos!=0){
                if((d[pos]==max2) && (v[pos]<comp)){
                                  m++;
                                  f[m]=v[pos];
                                  comp=v[pos];
                                  max2--;}
                pos--;}
    for(i=m; i>=1; i--) g<<f[i]<<' ';
    return 0;
}