Pagini recente » Cod sursa (job #2967955) | Cod sursa (job #2175387) | Cod sursa (job #2283311) | Cod sursa (job #2675875) | Cod sursa (job #1408183)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream in("scmax.in");
ofstream out("scmax.out");
int N;
int LMAX;
int MIN[100008];
void citire()
{
in>>N;
}
void rezolvare()
{
int i,a;
int pos;
LMAX=1;
in>>MIN[1];
for(i=2;i<=N;i++)
{
in>>a;
pos=lower_bound(MIN,MIN+LMAX+1,a)-MIN-1;
if(pos>=LMAX)
{
pos=LMAX;
LMAX++;
MIN[pos+1]=a;
}
else
MIN[pos+1]=min(MIN[pos+1],a);
}
}
void afisare()
{
out<<LMAX<<'\n';
for(int i=1; i<=LMAX; i++)
out<<MIN[i]<<' ';
}
int main()
{
citire();
rezolvare();
afisare();
return 0;
}