Cod sursa(job #356840)

Utilizator AndrewTheGreatAndrei Alexandrescu AndrewTheGreat Data 16 octombrie 2009 20:22:19
Problema Subsir crescator maximal Scor 55
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <iostream>

using namespace std;

int s1[100000],s2[100000],lg;

int main()
{
    freopen ("scmax.in","r",stdin);
    freopen ("scmax.out","w",stdout);
    int i,j;
    bool ok=true;
    int a[100000],n;
    scanf("%d",&n);
    for(i=0;i<n;i++)
        scanf("%d",&a[i]);
    for(i=0;i<n;i++)
    {
        for(ok=true,j=0;j<lg&&ok;j++)
            if(s1[j]>a[i])
                s1[j]=a[i],ok=false;

        if(ok)/*(s1[lg-1]>a[i])
            s1[lg-1]=a[i],s2[lg-1]=i;
        else*/
            s1[lg]=a[i],s2[lg]=i,lg++;
    }
    printf("%d\n",lg);
    for(i=0;i<lg;i++)
    {
        printf("%d ",a[s2[i]]);
    }
    return 0;
}