Cod sursa(job #2344741)

Utilizator AndreiCroitoruAndrei Croitoru AndreiCroitoru Data 15 februarie 2019 15:59:23
Problema Subsir crescator maximal Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.96 kb
#include <fstream>

using namespace std;
ifstream in("scmax.in");
ofstream out("scmax.out");
int d[100001],v[100001];
int main()
{
    int n,nr,i,j;
    in>>n;
    v[0]=0;
    in>>nr;
    v[1]=nr;
    d[1]=1;
    int maxim=1;
    int maxx=-99;
    for(i=2;i<=n;i++)
    {
        in>>nr;
        int ok=0;
        int st=1,dr=maxim;
        while(st<=dr)
        {
            int mij=(st+dr)/2;
            if(v[mij]>=nr)
            {
                //dr=mij-1;
                st=mij+1;
            }
            else
            {
                //st=mij+1;
                dr=mij-1;
                d[i]=mij+1;
                if(d[i]>maxim)
                    v[++maxim]=nr;
            }
        }
        if(v[d[i]]>nr)
        v[d[i]]=nr;//{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
    }
    for(i=1;i<=n;i++)
    {
        if(d[i]>maxx)
            maxx=d[i];
    }
    out<<maxx;
    return 0;
}