Cod sursa(job #1997316)

Utilizator GeoeyMexicanuBadita George GeoeyMexicanu Data 3 iulie 2017 21:43:49
Problema Subsir 2 Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <iostream>
#include <fstream>
#define N 5010
using namespace std;
ifstream f("subsir2.in");
ofstream g("subsir2.out");
int i,j,n,m,k,x[N],v[N],p[N],b[N],lo,hi,mi,L,min1=1000010,pozm;
void af(int k)
{
    if(k==0){
        g<<L<<'\n';
        return;
    }
    af(b[k]);
    g<<k<<' ';
}
int main()
{
    f>>n;
    int ok=1;
    for(i=1;i<=n;i++)
    {
        f>>x[i];
        if(min1>x[i])
        {
            min1=x[i];
            pozm=i;
        }
    }
    for(i=pozm;i<=n;i++)
    {
        lo=0;
        hi=L+1;
        while(hi-lo>1)
        {
            mi=(lo+hi)/2;
            if(x[i]<v[mi])
                hi=mi;
            else
                lo=mi;
        }
        if(hi==L+1)
            L++;
        v[hi]=x[i];
        p[hi]=i;
        b[i]=p[lo];
    }
    af(p[L]);
    return 0;
}