Pagini recente » Cod sursa (job #903854) | Cod sursa (job #1916013) | Cod sursa (job #2039525) | Cod sursa (job #3201022) | Cod sursa (job #759169)
Cod sursa(job #759169)
#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();
}