Pagini recente » Cod sursa (job #2426733) | Cod sursa (job #620884) | Cod sursa (job #2375552) | Cod sursa (job #1617427) | Cod sursa (job #1919198)
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
ifstream f ("scmax.in");
ofstream g ("scmax.out");
int main()
{
int n;
int maxim = 0;
int maximPozitii = 0;
int i, j;
int start = 0;
int sirInitial[100005];
int sirPozitii[100005];
f >> n;
for (i = 1; i <= n; ++i) {
f >> sirInitial[i];
}
sirPozitii[n] = 1;
for (i = n; i >= 1; --i) {
maxim = 0;
for (j = n; j > i; --j) {
if (sirInitial[i] < sirInitial[j]
&& sirPozitii[j] >= maxim) {
maxim = sirPozitii[j];
}
}
sirPozitii[i] = maxim + 1;
if (maxim >= maximPozitii) {
maximPozitii = maxim + 1;
start = i;
}
}
g << maximPozitii << '\n';
//
// for (i = 1; i <= n; ++i)
// g << sirPozitii[i];
for (i = start, start = sirPozitii[i]; i <= n; ++i) {
if (start == sirPozitii[i]) {
g << sirInitial[i] << ' ';
start--;
}
}
return 0;
}