Cod sursa(job #2314535)

Utilizator petru123456789Petru B petru123456789 Data 8 ianuarie 2019 17:57:25
Problema Subsir crescator maximal Scor 5
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.09 kb
#include <iostream>
#include<fstream>

using namespace std;
int n,i,j,a[1005],s[1005],u,w[1005],q,maxim,imax;
int main()
{
    ifstream in("scmax.in");
    ofstream out("scmax.out");
    in>>n;
    s[1]=1;
    for(i=1;i<=n;i++)
    {
        in>>a[i];
    }
    for(i=2;i<=n;i++)
    {
        s[i]=1;
        for(j=i-1;j>=1;j--)
        {
            if(a[i]>a[j])
            {
                s[i]=s[j]+1;
                if(s[i]>maxim)
                {
                    maxim=s[i];
                    imax=i;
                }
                if(s[i]==maxim && a[i]<a[imax])
                {
                    imax=i;
                }
                break;

            }

        }
    }
   /* for(i=1;i<=n;i++)
    {
        cout<<s[i]<<' ';
    }*/
    out<<maxim<<'\n';
    u++;
    w[u]=imax;

    for(i=imax-1;i>=1;i--)
    {
        if(s[i]<s[i+1])
        {
            u++;
            w[u]=i;

        }
        if(s[i]==1)
            break;

    }
    for(i=u;i>0;i--)
    {
        int e=w[i];
        out<<a[e]<<' ';
    }
}