Cod sursa(job #1771560)

Utilizator CrystyAngelDinu Cristian CrystyAngel Data 5 octombrie 2016 19:26:49
Problema Subsir 2 Scor 45
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <iostream>
#include <fstream>

using namespace std;

#define nmax 5100

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

int v[nmax];
int q[nmax];
int n,i,s,d,p,l,m;

int main()
{
    fin>>n;
    for(i=1; i<=n; ++i)
    {
        fin>>v[i];
        s=1;
        d=l;
        p=0;
        while(s<=d)
        {
            m=(s+d)/2;
            if(v[i]>=v[q[m]])
                s=m+1,p=m;
            else
                d=m-1;
        }
        if(p+1>l)
            ++l;
        q[p+1]=i;
    }
    fout<<l<<'\n';
    for(i=1; i<=l; ++i)
        fout<<q[i]<<' ';
}