Cod sursa(job #2331233)

Utilizator bodea.georgianaBodea Georgiana bodea.georgiana Data 29 ianuarie 2019 13:14:11
Problema Subsir crescator maximal Scor 55
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
#include <stdio.h>

using namespace std;
FILE *f,*g;

int l[100002],n,imax;

void caut_binar(int x)
{
    int st=1,dr=imax,mij,poz=imax;
    if(l[imax]<x ||imax==0)
            l[++imax]=x;
    else
    {
        while(st<=dr)
        {
            mij=(st+dr)/2;
            if(l[mij]<=x)
                st=mij+1;
            else
            {
                if(poz>mij)
                    poz=mij;
                dr=mij-1;
            }
        }
        l[poz]=x;
    }
}
int main()
{
    int x;
    f=fopen("scmax.in","r");
    g=fopen("scmax.out","w");
    fscanf(f,"%d",&n);
    for(int i=1;i<=n;++i)
    {
        fscanf(f,"%d",&x);
        caut_binar(x);
    }
    fprintf(g,"%d\n",imax);
    for(int i=1;i<=imax;++i)
        fprintf(g,"%d ",l[i]);
    fclose(f);
    fclose(g);
    return 0;
}