Cod sursa(job #2187404)

Utilizator FunnyStockyMihnea Andreescu FunnyStocky Data 26 martie 2018 14:57:47
Problema Subsir crescator maximal Scor 25
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <fstream>
#include <algorithm>

using namespace std;

ifstream fin("scmax.in");
ofstream fout("scmax.out");

const int N=100000;
int n;
int v[N+5],mic[N+5];

int main()
{
    fin>>n;
    for(int i=1;i<=n;i++)
    {
        fin>>v[i];
        mic[i]=(1<<30);
    }
    for(int i=1;i<=n;i++)
    {
        int r=0,pas=(1<<17);
        while(pas)
        {
            if(r+pas<=n && v[i]>mic[r+pas])
                r+=pas;
            pas/=2;
        }
        mic[r+1]=min(mic[r+1],v[i]);
        /**for(int j=1;j<=n;j++)
        {
            fout<<mic[j]<<" ";
        }
        fout<<"\n";**/
    }
    int poz=0;
    for(int i=n;i>=1;i--)
        if(mic[i]!=(1<<30))
        {
            poz=i;
            break;
        }
    fout<<poz<<"\n";
    for(int i=1;i<=poz;i++)
        fout<<mic[i]<<" ";
    return 0;
}
/**
**/