Cod sursa(job #1131037)

Utilizator brinzapaulBrinza Paul brinzapaul Data 28 februarie 2014 17:24:37
Problema Subsir crescator maximal Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include <fstream>

using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int N,i,j,lmax,ok,pornire;
int a[100000],l[100000],poz[100000];
int main()
{
        fin>>N;
        for(i=1;i<=N;i++)
        fin>>a[i];

    l[N]=1;
    poz[N]=0;
    for(j=N-1;j>=1;j--)
    {
        ok=1;
        for(i=j+1;i<=N&& ok==1;i++)
        {
        if(a[j]>=a[i])
        i++;
    else
    {
        if(l[j+1]!=0)
        {l[j]=l[i]+1;
        poz[j]=i;
        ok=0;}
        else
        {
            l[j]=l[i+1]+1;
        poz[j]=i+1;
        ok=0;

        }
    }
        }
    if(l[j]>lmax)
    {lmax=l[j];
      pornire=j;
        }
}
fout<<lmax<<" ";
fout<<endl;
        fout<<a[pornire]<<" ";
    for(i=pornire;i<=N;i++)
    {
        if(poz[i]!=0)
            fout<<a[poz[i]]<<" ";
    }
    return 0;
}