Cod sursa(job #2635433)

Utilizator mateilazarescumateilazarescu mateilazarescu Data 14 iulie 2020 14:31:34
Problema Subsir crescator maximal Scor 5
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
#include<fstream>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int v[100004],t[100004],r[100004];
int n,i,len,st,dr,mij,elem;
int main()
{
    fin>>n;
    for(i=1;i<=n;i++) fin>>v[i];
    len=1;
    t[1]=1;
    for(i=2;i<=n;i++)
    {
        if(v[i]>v[t[len]])
        {
            len++;
            t[len]=i;
            r[i]=t[len-1];
        }
        else
        {
            st=1;
            dr=len;
            elem=0;
            while(st<=dr)
            {
                mij=(st+dr)/2;
                if(v[t[mij]]>v[i])
                {
                    elem=mij;
                    dr=mij-1;
                }
                else st=mij+1;
            }
            t[mij]=i;
            r[i]=t[mij-1];
        }
    }
    fout<<len<<'\n';
    return 0;
}