Pagini recente » Cod sursa (job #2640920) | Cod sursa (job #534786) | Cod sursa (job #62054) | Cod sursa (job #69824) | Cod sursa (job #2063745)
#include <iostream>
#include <fstream>
using namespace std;
#define NN 100000
ifstream in("scmax.in");
ofstream out("scmax.out");
int main(){
int v[NN],L[NN],next[NN];
int n ;
in >> n ;
for ( int i = 1 ; i <= n ; ++ i )
in >> v[i]; // am citit elementele
L[n]=1,next[n]=-1;
for(int i = n - 1 ; i ; -- i )
{
L[i]=1,next[i]=-1;
for(int j = i + 1 ; j <= n ; ++ j )
if(v[i]<v[j] && L[i]<=L[j])
L[i]=L[j]+1, next[i]=j;
}
int k=1 ;
int maxim= 0 ;
for ( int i = 2 ; i <= n ; ++ i )
if(L[i]>L[k])k=i;
out << L[k]<<"\n";
while( next[k]!=-1)
{
out << v[k]<<" ";
k = next [k];
}
out << v[k];
return 0;
}//sclm