Pagini recente » Cod sursa (job #1854859) | Cod sursa (job #2873657) | Cod sursa (job #2317363) | Cod sursa (job #2605751) | Cod sursa (job #2603733)
#include <cstdio>
using namespace std;
int main() {
int n, i, j, mp,
v[100005], rez[100005] {}, pred[100005];
freopen("scmax.in", "r", stdin);
freopen("scmax.out", "w", stdout);
scanf("%d", &n);
for(i = 1; i <= n; ++i)
scanf("%d", &v[i]);
for(i = 1; i <= n; i++)
for(j = 1; j < i; j++)
if(v[j] < v[i] && rez[i] < 1 + rez[j]) {
rez[i] = 1 + rez[j];
pred[i] = j;
mp = i;
}
for(n = 0; mp; mp = pred[mp])
rez[++n] = v[mp];
printf("%d\n", n);
for(i = n; i >= 1; --i)
printf("%d ", rez[i]);
}