Cod sursa(job #945021)

Utilizator vlady1997Vlad Bucur vlady1997 Data 30 aprilie 2013 11:15:19
Problema Subsir crescator maximal Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 1 kb
        #include <cstdio>
        #include <cstring>
        using namespace std;
        int a[100001], poz[100001], st[100001];
        int main()
        {
            int n, i, j, nr=0;
            bool ok;
            freopen("scmax.in","r",stdin);
            freopen("scmax.out","w",stdout);
            scanf("%d",&n);
            for (i=1; i<=n; i++) scanf("%d",&a[i]); memset(st,0,sizeof(a));
            for (i=1; i<=n; i++)
            {
                ok=false;
                for (j=1; j<=nr; j++)
                {
                    if (st[j]>=a[i])
                    {
                        st[j]=a[i];
                        poz[i]=j;
                        ok=true; break;
                    }
                }
                if (ok==false)  {st[++nr]=a[i]; poz[i]=nr;}
            }
            printf("%d\n",nr);
            for (i=1; i<=nr; i++) printf("%d ",st[i]);
            fclose(stdin);
            fclose(stdout);
            return 0;
        }