Cod sursa(job #759169)

Utilizator iris88Nagy Aliz iris88 Data 16 iunie 2012 23:24:12
Problema Subsir crescator maximal Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <stdio.h>
#include <iostream>
#include <fstream>
#include <limits.h>

#define NMAX 100010
using namespace std;

int vect[NMAX];
int secv[NMAX];
int p[NMAX];
int pr[NMAX];
int main()
{
  ifstream f("scmax.in",ios::in);
  ofstream g("scmax.out",ios::out);
  int n,m;
  f>>n;
  for (int i=0;i<n;i++)
    f>>vect[i];
  secv[0] = vect[0];
  int msecv = 1;
  for (int i=1;i<n;i++)
  {
    int k1 = -1;int k2 = msecv;
    int ind = 0;
    while (k1<k2-1)
    {
      int mij = (k1+k2)/2;
      if (vect[i]>secv[mij])
      {
        k1 = mij;
      }
      else k2=mij;
    }
    secv[k2] = vect[i];
    if (k2>=msecv) msecv = k2+1;
  }
  g<<msecv<<endl;
  for (int i=0;i<msecv;i++)
    g<<secv[i]<<" ";
  f.close();
  g.close();
}