Cod sursa(job #826965)

Utilizator ard_procesoareLupicu ard_procesoare Data 1 decembrie 2012 14:41:23
Problema Subsir crescator maximal Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>
using namespace std;
#define NMAX 100003
int n, v[NMAX], maxim, k, d[NMAX],c[NMAX], nr;


void caut(int x)
{
    int p, u, m;
    p = 0; u = nr; m = (p+u)/2;
    while (p <= u)
    {
    if (c[m] < x &&  c[m+1] >= x)
    {
        c[m+1]=x;
        return;
    }
    else if (c[m+1] < x) {p = m + 1; m = (p + u)/2;}
    else {u = m - 1; m = (p + u)/2;}
    }
    c[++nr]=x;
}

int main()
{
    ifstream fin("scmax.in");
    ofstream fout("scmax.out");
    int i,j;
    fin>>n;
    n++;
    nr=1;
    for(i=1;i<n;i++) fin>>v[i];
    c[1]=v[1];
    for(i=2;i<n;i++)
    {
        caut(v[i]);
    }
    fout<<nr<<endl;
    for(i=1;i<=nr;i++)
        fout<<c[i]<<" ";

}