Pagini recente » Cod sursa (job #1871983) | Cod sursa (job #570808) | Cod sursa (job #1222296) | Cod sursa (job #771158) | Cod sursa (job #877983)
Cod sursa(job #877983)
#include <stdio.h>
using namespace std;
#define Nmax 100005
int n, a[Nmax], best[Nmax], poz[Nmax], maxim, maxpoz;
void citire(){
scanf("%i", &n);
for(int i = 1; i <= n; ++i)
scanf("%i", &a[i]);
fclose(stdin);
}
void rezolva(){
for(int i = n; i >= 1; --i){
best[i] = 1;
poz[i] = -1;
for(int j = n; j > i; --j){
if(a[j] > a[i] && best[i] < best[j] + 1){
best[i] = best[j] + 1;
poz[i] = j;
if(best[i] > maxim) maxim = best[i], maxpoz = i;
}
}
}
}
int main(){
freopen("scmax.in", "r", stdin);
freopen("scmax.out", "w", stdout);
citire();
rezolva();
printf("%i\n", maxim);
while(maxpoz != -1){
printf("%i ", a[maxpoz]);
maxpoz = poz[maxpoz];
}
printf("\n");
fclose(stdout);
return 0;
}