Pagini recente » Cod sursa (job #1511431) | Cod sursa (job #388542) | Cod sursa (job #2182292) | Cod sursa (job #393076) | Cod sursa (job #2850532)
#include <bits/stdc++.h>
#define dim 150000
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int n;
int v[dim];
int d[dim];
int sir[dim];
int f[dim];
void citire()
{
fin>>n;
for (int i=1;i<=n;i++)
fin>>v[i];
}
void sclm()
{
///sclm cautare binara
int k=1;
sir[k]=v[1];
int poz;
for (int i=2;i<=n;i++){
if (v[i]>sir[k]){
sir[++k]=v[i];
}
else{
int st=1;
int dr=k;
int poz=k+1;
while(st<=dr)
{
int mij=(st+dr)/2;
if (sir[mij]>v[i])
{
poz=mij;
dr=mij-1;
}
else
{
st=mij+1;
}
}
if (f[i]==0){
sir[poz]=v[i];
f[i]=1;
}
}
}
fout<<k<<'\n';
for (int i=1;i<=k;i++)
fout<<sir[i]<<' ';
}
int main()
{
citire();
sclm();
}