Cod sursa(job #2059074)

Utilizator armand200Armand Cismaru armand200 Data 6 noiembrie 2017 17:15:41
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.04 kb
#include <bits/stdc++.h>

using namespace std;

ifstream f ("scmax.in");
ofstream g ("scmax.out");

int a[100000], n, lmax, pmax, l[100000], u,i,j,ma,k,v[100000];

int binar (int a)
{
    int x=0, p=1,nr=0;

    while (a!=0)
    {
        x=x+ p* (n%2);
        if(x%10==1) nr++;
        p*=10;
        a/=2;
    }

return nr;}


int main()
{
    f>>n;
    for (i=1;i<=n;i++)
        f>>a[i];

    l[1]=1;
    pmax=1;
    lmax=1;

    for (i=2;i<=n;i++)
    {
        ma=0;

        for (j=1;j<=i-1;j++)
        if (binar (a[i])> binar (a[j])  && l[j]>ma) ma=l[j];

        l[i]=1+ma;

        if ( l[i]> lmax)
        {
            lmax=l[i];
            pmax=i;
        }

    }

g<< lmax<<endl; k=lmax;
     v[lmax]=a[pmax];

    lmax--;
    u=a[pmax];

    for (i=pmax+1;i>=1;i--)

        if (l[i]==lmax && binar (a[i]) < binar (u))
        {
            v[lmax]=a[i];
            u=a[i];
            lmax--;
        }
    for (i=1;i<=k;i++)
        g<<v[i]<<" ";
    return 0;

}