Pagini recente » Cod sursa (job #2157901) | Cod sursa (job #2876615) | Cod sursa (job #316889) | Cod sursa (job #3153160) | Cod sursa (job #2705980)
#include <iostream>
#include <fstream>
#define MAX 100002
using namespace std;
int n,v[MAX],dp[MAX],tata[MAX],rez[MAX];
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int main()
{
fin >> n;
for(int i = 1; i <= n; i++){
fin >> v[i];
}
dp[1] = 1;
int maxi = 0,poz = 0;
for(int i = 2; i <= n; i++){
dp[i] = 1;
for(int j = i-1; j >= 1; j--){
if(v[j] < v[i] && dp[j]+1 > dp[i]){
dp[i] = dp[j];
tata[i] = j;
if(maxi < dp[i]){
maxi = dp[i];
poz = i;
}
}
}
}
fout << maxi << "\n";
for(int i = maxi; i >= 1; i--){
rez[i] = v[poz];
poz = tata[poz];
}
for(int i = 1; i <= maxi; i++){
fout << rez[i] << " ";
}
return 0;
}