Pagini recente » Cod sursa (job #631478) | Cod sursa (job #2559801) | Cod sursa (job #3187141) | Cod sursa (job #1024703) | Cod sursa (job #485355)
Cod sursa(job #485355)
#include <cstdio>
using namespace std;
int n, a[100], l[2000], p[2000], max, poz;
void citire()
{
scanf ("%d\n",&n);
for (int i=0; i<n; i++)
{
scanf ("%d ",&a[i]);
l[i]=1;
p[i]=-1;
}
}
void sir()
{
for (int i=n-1; i>=0; i--)
for (int j=i+1; j<n; j++)
if (a[j]>a[i] && l[i]<l[j]+1)
{
l[i]=1+l[j];
p[i]=j;
if (l[i]>max)
max=l[i];
}
}
void afisare()
{
printf ("%d\n",max+1);
for (int i=0; i<n; i++)
if (l[i]==max)
{
poz=i;
while (p[poz])
{
printf ("%d ", a[poz]);
poz=p[poz];
if (p[poz]==-1)
{
printf ("%d ",a[poz]);
break;
}
}
}
printf ("\n");
}
int main()
{
freopen ("scmax.in","r",stdin);
freopen ("scmax.out","w",stdout);
citire();
sir();
afisare();
return 0;
}