Pagini recente » Cod sursa (job #345681) | Cod sursa (job #2459269) | Cod sursa (job #2384434) | Cod sursa (job #3250908) | Cod sursa (job #3261651)
#include <iostream>
#include <fstream>
#define cin fin
#define cout fout
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int cautBin(int a[], int st, int dr, int x) {
if(st > dr) return 0;
if(st == dr) {
if(a[st] == x) return 1;
else return 0;
}
int mij = (st + dr) / 2;
if(a[mij] == x) return 1;
else if(a[mij] < x) return cautBin(a, mij + 1, dr, x);
else return cautBin(a, st, mij - 1, x);
}
long long int b[100001]={1},v[100001];
long int n,a,ma=0;
int main()
{
cin>>n;
for(int i=1;i<=n;i++){
cin>>v[i];
}
for(int i=0;i<=n;i++){
for(int j=0;j<=i;j++){
if(v[i]>v[j] && b[i]<=b[j]){
b[i]=b[i]+1;
if(ma<b[i])
ma=b[i];
}
}
}
int vec[100001];
cout<<ma<<endl;
int r=ma;
for(int i=n;i>=1;i--){
if(ma==b[i]){
ma--;
vec[ma+1]=v[i];
}
}
for(int i=1;i<=r;i++){
cout<<vec[i]<<" ";
}
}