Pagini recente » Cod sursa (job #1640797) | Cod sursa (job #974556) | Cod sursa (job #1527098) | Cod sursa (job #159564) | Cod sursa (job #2092206)
#include <iostream>
#include <fstream>
#define NN 100000
using namespace std;
ifstream in("scmax.in");
ofstream out("scmax.out");
int v[NN] , n ,next[NN],best[NN];
void read()
{
in >> n ;
for ( int i =1 ; i <= n ; ++i )
in>> v[i];
}
int main()
{ read();
next[n] = -1 ;
best[n] = 1 ;
for ( int i = n-1 ; i ; --i )
{
next[i] = -1 , best[i] = 1 ;
for ( int j = i + 1 ; j <= n ;++ j )
{
if (v[j]>v[i] && best[j] >= best[i])
best[i]=best[j] +1 , next [i] = j ;
}
}
int k=1 ;
int maxim= 0 ;
for ( int i = 2 ; i <= n ; ++ i )
if(best[i]>best[k])k=i;
out << best[k]<<"\n";
while( next[k]!=-1)
{
out << v[k]<<" ";
k = next [k];
}
out << v[k];
return 0;
}//sclm