Pagini recente » Cod sursa (job #2120834) | Cod sursa (job #1053673) | Cod sursa (job #2525223) | Cod sursa (job #1654101) | Cod sursa (job #1975374)
#include<iostream>
#include<fstream>
#include<string.h>
#include<algorithm>
using namespace std;
long long a[100005];
long v[100005];
long res[100005];
long n;
bool comp(long x,long y)
{
return a[x]<=a[y];
}
long lungime=0;
int main()
{
ifstream f("scmax.in",fstream::in);
ofstream g("scmax.out",fstream::out);
f>>n;
for(long i=0;i<n;i++)
f>>a[i];
for(long i=0;i<n;i++)
res[i]=-1;
v[0]=0;
lungime=1;
for(long i=1;i<n;i++)
if(a[i]>a[v[lungime-1]]) {v[lungime++]=i;}
else{
long *r=upper_bound(v,v+lungime,i,comp);
v[r-v]=i;
}
g<<lungime<<endl;
for(long i=0;i<lungime;i++)
g<<a[v[i]]<<" ";
}