Pagini recente » Cod sursa (job #1544282) | Cod sursa (job #1195936) | Cod sursa (job #14085) | Cod sursa (job #295883) | Cod sursa (job #2694314)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("scmax.in");
ofstream out("scmax.out");
const int MAXN = 100000;
int v[MAXN];
int a[MAXN];
int ind[MAXN], ind_max[MAXN];
int main()
{
int n, i, j, lung, lung_max, cont, k;
in>>n;
for( i = 0; i < n; i++ ){
in>>v[i];
}
lung_max = 0;
cont = 0;
for( i = 0; i < n; i++ ){
a[i] = 1;
for( j = 0; j < i; j++ ){
if( v[j] < v[i] ){
if( a[i] < a[j] + 1 ){
a[i] = a[j] + 1;
ind[cont] = j;
cont++;
}
}
if( a[i] > lung_max ){
lung_max = a[i];
for( k = 0; k <= cont; k++ ){
ind_max[k] = ind[k];
}
ind_max[cont] = i;
}
}
cont = 0;
}
out<<lung_max<<'\n';
for( i = 0; i < lung_max; i++ )
out<<v[ind_max[i]]<<" ";
return 0;
}