Cod sursa(job #1164548)

Utilizator lianaliana tucar liana Data 2 aprilie 2014 09:51:57
Problema Subsir crescator maximal Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include<stdio.h>
#define nmax 100005
int st, dr, mjc, ne, n, x, poz, i;
int v[nmax];

void cauta()
{
    st=1;   dr=ne;
    while (st<=dr)
    {
        mjc=(st+dr)/2;
        if (v[mjc]<x)
            st=mjc+1;
        else
            dr=mjc-1;
    }
    poz=st;
    if(poz>ne)
        ne++;
}

int main()
{
    freopen("scmax.in","r",stdin);
    freopen("scmax.out","w",stdout);
    scanf("%ld",&n);
    for (i=1;i<=n;i++)
    {
        scanf("%ld",&x);
        cauta();
        v[poz]=x;
    }
    printf("%ld\n",ne);
    for (i=1;i<=ne;i++)
        printf("%ld ",v[i]);
    return 0;
}