Pagini recente » Cod sursa (job #21648) | Cod sursa (job #2178892) | Cod sursa (job #764371) | Cod sursa (job #386825) | Cod sursa (job #1517924)
#include <fstream>
using namespace std ;
const int NMAX = 1000005 ;
ifstream fin("scmax.in") ;
ofstream fout("scmax.out") ;
int N, V[NMAX], prim, l[NMAX], poz[NMAX], m ;
int main()
{
fin >> N ;
for(int i = 1 ; i <= N ; ++ i)
fin >> V[i] ;
m = -1 ;
for(int i = N ; i > 0 ; i --)
{
poz[i] = 0 ; l[i] = 1 ;
for(int j = i + 1 ; j <= N ; ++ j)
if(V[i] < V[j] && l[i] < 1 + l[j])
{
l[i] = 1 + l[j] ;
poz[i] = j ;
}
if(m < l[i])
{
m = l[i] ;
prim = i ;
}
}
fout << m << '\n' ;
for(int i = prim ; i>0 ; i = poz[i])
fout << V[i] << ' ' ;
fout << '\n' ;
fin.close() ;
fout.close() ;
return 0 ;
}