Pagini recente » Cod sursa (job #381119) | Cod sursa (job #1617758) | Cod sursa (job #2848139) | Cod sursa (job #2102358) | Cod sursa (job #941835)
Cod sursa(job #941835)
#include <cstdio>
int main()
{
int v[100];short n, l[100], val, pmax = 0, k;
freopen("scmax.in", "r", stdin);
freopen("scmax.out", "w", stdout);
scanf("%d", &n);
for(int i = 0; i < n; i++)scanf("%d", &v[i]);
/*---------------------------------lunguime l.i.s.--------------------------------------------*/
for(int i = 0; i < n; i++)
{
val = 0;
for(int j = i - 1; j >= 0; j--)
{
if(v[j] < v[i] && val < l[j])val = l[j];
}
l[i] = val + 1;
if(l[pmax] < l[i])pmax = i;
}
printf("%i\n", l[pmax]);
val = pmax;
/*--------------------------------------l.i.s-------------------------------------------------*/
while(val >= 0){
k = val - 1;
label:
while(k >= 0 && l[k] != l[val] - 1)k--;
if(v[k] < v[val])
{
l[val] = -1;
val = k;
}
else
{
k--;goto label;
}
}
for(int i = 0; i <= pmax; i++)
{
if(l[i] == -1)printf("%i ", v[i]);
}
return 0;
}