Pagini recente » Cod sursa (job #373913) | Cod sursa (job #133841) | Cod sursa (job #1146984) | Cod sursa (job #1700727) | Cod sursa (job #1306153)
#include<stdio.h>
#include<iostream>
#include<fstream>
#include<algorithm>
using namespace std;
#define nmax 100002
int s[nmax],p[nmax],sol[nmax];
int main()
{
ifstream si;
si.open("scmax.in");
ofstream so;
so.open("scmax.out");
int n;
si>>n;
int v[n];
int i;
for(i=0;i<n;++i)
si>>v[i];
int l=0;
for(i=0;i<n;++i)
{
int x=lower_bound(s,s+l,v[i])-s;
p[i]=x;
s[x]=v[i];
if(x+1>l)
{
l=x+1;
}
}
so<<l<<'\n';
int x=l;
for(i=n-1;x;--i)
{
if(p[i]==x-1)
{
--x;
sol[x]=v[i];
}
}
for(i=0;i<l;++i)
so<<sol[i]<<' ';
so<<'\n';
}