Pagini recente » Cod sursa (job #2698030) | Cod sursa (job #2999705) | Cod sursa (job #3188731) | Cod sursa (job #150984) | Cod sursa (job #1686621)
#include <cstdio>
#include <algorithm>
#include <climits>
using namespace std;
struct vect
{
int x,y,z,t;
};
vect v[1005];
int main()
{
freopen("scmax.in", "r",stdin);
freopen("scmax.out", "w",stdout);
int n,i,pozinc,j,k,l,lmax = -1,mi;
scanf("%d", &n);
for(i = 1; i <= n; i++)
scanf("%d", &v[i].x);
for(i = 1; i <= n; i++)
{
l = 0;
v[++l].y = i;
v[l].t = v[i].x;
for(k = i + 1; k <= n; k++)
{
mi = INT_MAX;
for(j = k; j <= n; j++)
{
if(v[j].x < mi && v[j].x > v[l].t)
{
mi = v[j].x;
pozinc = j;
}
}
if(mi != INT_MAX)
{
v[++l].y = pozinc;
v[l].t = mi;
k = pozinc;
}
}
if(l > lmax)
{
lmax = l;
for(j = 1;j <= l;j++)
v[j].z = v[j].y;
}
}
printf("%d\n",lmax);
for(i = 1;i <= lmax;i++)
printf("%d ",v[v[i].z].x);
return 0;
}