Cod sursa(job #1760216)

Utilizator AndreidgDragomir Andrei Valentin Andreidg Data 20 septembrie 2016 15:36:28
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 1.03 kb
#include <fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int i,j,n,k;
unsigned int v[100002];
unsigned int l[100002];
unsigned int poz[100002];
unsigned int stiva[100002];
unsigned x1,x,Max,lung,p;
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;lung=1;p=i;
        for(j=i-1;j>=1;j--)
        {
            if(x>v[j])
            {

               if(lung<l[j]+1){
                lung=l[j]+1;
                p=j;
               }
            }
        }
        //g<<lung<<"\n";
        l[i]=lung;poz[i]=p;
        if(l[i]>Max)
        {
            Max=l[i];
            x1=i;
        }
    }
    g<<Max<<"\n";
    k=1;
    while(x1!=poz[x1])
    {
        //g<<v[x]<<" ";
        stiva[k]=x1;
        x1=poz[x1];
        k++;
    }
    stiva[k]=x1;
    for(i=k;i>=1;i--)
    {
        g<<v[stiva[i]]<<" ";
    }
    //g<<v[x];
    f.close();
    g.close();
    return 0;
}