Pagini recente » Cod sursa (job #653633) | Cod sursa (job #2818590) | Cod sursa (job #2518262) | Cod sursa (job #637400) | Cod sursa (job #2210783)
#include <fstream>
#include <limits.h>
using namespace std;
ifstream fin ("scmax.in");
ofstream fout ("scmax.out");
int n, i, j, k, maxim, u, poz, v[100005], t[100005], l[100005], s[100005];
int main()
{
fin >> n;
for (i=1; i<=n; i++){
fin >> v[i];
}
n++;
v[n] = INT_MAX;
l[1] = 1;
for (i=2; i<=n; i++){
maxim = 0;
for (j=1; j<i; j++){
if (v[j] < v[i] && l[j] > maxim){
maxim = l[j];
poz = j;
}
}
if (maxim != 0){
l[i] = 1 + maxim;
t[i] = poz;
}
else {
l[i] = 1;
t[i] = 0;
}
}
u = n;
while (u != 0){
s[++k] = v[u];
u = t[u];
}
fout << k - 1 << "\n";
for (i=k; i>=2; i--){
fout << s[i] << " ";
}
return 0;
}