Pagini recente » Cod sursa (job #2156219) | Cod sursa (job #2651811) | Cod sursa (job #2119756) | tema | Cod sursa (job #1430823)
#include <iostream>
#include <fstream>
#define MAX 101
using namespace std;
ifstream fin ("scmax.in");
ofstream fout ("scmax.out");
int A[MAX] ;
int N,poz;
int best[MAX];
int pre[MAX];
int maxim;
void dinamica(){
int i,j ;
best[N] = 1;
pre[N] = -1;
maxim =1;
poz =N;
for(i = N -1 ; i >= 0 ; i--){
best[i] = 1 ;
pre[i] = -1;
for(j = i + 1 ; j <=N ; ++j ){
if(A[j] < A[i] && best[i] < 1 + best[j] ){
best[i] = 1 + best[j];
pre[i] = j;
if(best[i] > maxim ){
maxim = best[i];
poz = i;
}
}
}
}
}
void construieste(){
int i;
i = poz;
while(i!=-1)
{
fout<<A[i]<<"\n";
i = pre[i];
}
}
int main()
{
fin>>N;
for(int i = 0 ; i < N ;i++){
fin>>A[i];
}
dinamica();
fout<<maxim<<"\n";
construieste();
return 0;
}