Cod sursa(job #1506174)

Utilizator SirStevensIonut Morosan SirStevens Data 20 octombrie 2015 08:30:41
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <bits/stdc++.h>

using namespace std;

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

int n,i,v[100003],p[100003],d[100003],maxx;
void afisare (int k)
{
while (k>0)
{
g<<v[k]<<" ";
k=p[k];
}
}
void dinamica ()
{
    int i, j, max2=n, poz;
    d[n]=1;
    p[n]=0;
    for (i=n-1; i>=1; i--)
    {
        poz=0; maxx=0;
            for (j=i+1; j<=n; j++)
                if (v[i]<v[j] && d[j]>maxx)
                        {
                            maxx=d[j];
                                poz=j;
                            }
                d[i]=1+maxx;
                p[i]=poz;
                    if (d[i]>d[max2]) max2=i;
    }
g<<d[max2]<<'\n';
afisare (max2);
}

int main()
{
    f>>n;
    for(i=1;i<=n;i++)
        f>>v[i];
    dinamica();

    return 0;
}