Pagini recente » Cod sursa (job #1677499) | Cod sursa (job #1525394) | Cod sursa (job #57978) | Cod sursa (job #1088155) | Cod sursa (job #2343941)
#include <iostream>
#include <fstream>
using namespace std;
ifstream intrare("scmax.in");
ofstream iesire("scmax.out");
const int NMAX=100000;
int maxim=0,maxim2=0;
int n;
int a[NMAX+2];
int aux[NMAX+2];
struct tabel{
int lg,pred;
}tabel[NMAX];
int main()
{
int i,j;
intrare>>n;
for(i=1;i<=n;i++){
intrare>>a[i];
tabel[i].lg=1;
}
for(i=1;i<=n;i++){
for(j=1;j<i;j++)
if(a[i]>a[j]){
tabel[i].lg=1+tabel[j].lg;
tabel[i].pred=j;
if(tabel[i].lg>=maxim){
maxim=tabel[i].lg;
maxim2=i;
}
}
}
j=1;
iesire<<maxim<<endl;
for(i=maxim2;i>=1;i=tabel[i].pred)
aux[j++]=a[i];
for(i=j-1;i>=1;i--)
iesire<<aux[i]<<" ";
return 0;
}