Cod sursa(job #867875)

Utilizator varga13VarGaz13 varga13 Data 30 ianuarie 2013 11:52:09
Problema Subsir crescator maximal Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
#include <iostream>
#include <fstream>
 
using namespace std;
 
int a[100001], l[100001],poz, k,i,mx,maxa,n;
 
int main()
{
    ifstream f("scmax.in");
    ofstream g("scmax.out");
     
    f>>n;
    for(i=1;i<=n;i++)
    {
        f>>a[i];
    }
     
    l[n]=1;
    for(i=n-1;i>=1;i--)
    {bool ok=true;
        for(k=i+1;k<=n&&ok;k++)
        {
            if(a[i]<a[k]&&l[i]<l[k]+1)
            {
                l[i]=l[k]+1;
                if(l[k]+1>maxa)
                {
                    maxa=l[k]+1;
                    poz=i;
                }
				ok=false;
            }
        }
        if(l[i]==0)
        {
            l[i]=1;
        }
    }
    g<<maxa<<"\n";
    g<<a[poz]<<" ";
    for(i=1;i<=n;i++)
    {
        if(l[i]==maxa-1)
        {
            g<<a[i]<<" ";
            maxa--;
        }
    }
     
    return 0;
}