Cod sursa(job #1760203)

Utilizator AndreidgDragomir Andrei Valentin Andreidg Data 20 septembrie 2016 15:17:38
Problema Subsir crescator maximal Scor 15
Compilator cpp Status done
Runda Arhiva educationala Marime 0.93 kb
#include <fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int i,j,n,x,Max,k;
int v[100001];
int l[100001];
int poz[100001];
bool ok;
int main()
{
    f>>n;
    for(i=1;i<=n;i++)
    {
        f>>v[i];
        x=v[i];ok=0;
        poz[i]=i;
        l[i]=1;
        for(j=i-1;j>=1;j--)
        {
            if(x>v[j])
            {
                if(!ok)
                {
                    poz[i]=j;
                    ok=1;
                }
                l[i]++;
                x=v[j];
            }
        }
        if(l[i]>Max)
        {
            Max=l[i];
            x=i;
        }
    }
    g<<Max<<"\n";
    k=1;
    while(x!=poz[x])
    {
        //g<<v[x]<<" ";
        l[k]=x;
        x=poz[x];
        k++;
    }
    l[k]=x;
    for(i=Max;i>=1;i--)
    {
        g<<v[l[i]]<<" ";
    }
    //g<<v[x];
    f.close();
    g.close();
    return 0;
}