Cod sursa(job #949284)

Utilizator flamey19Savu Daniel flamey19 Data 13 mai 2013 10:02:41
Problema Subsir crescator maximal Scor 5
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <cstdio>

using namespace std;
int lung [100],a[100],n,i,Maxx,x,Max,j;
int main ()
{
	freopen ("scmax.in","r",stdin);
	freopen ("scmax.out","w",stdout);
	scanf ("%d", &n);
	for ( i=1;i<=n;i++)
	scanf ("%d", &a[i]);
	lung[n]=1;
	for (i=n-1;i>=1;i--)
	{
	    Max=0;
	    for (j=i+1;j<=n;j++)
	    if (Max<lung[j]&&a[j]>a[i]) Max=lung[j];
	    lung[i]=Max+1;
	    if (Maxx<lung[i])
	    {
	        Maxx=lung[i];
	        x=i;
	    }
	}
    printf ("%d\n", Maxx);
    printf("%d ", a[x]);
    for (i=x+1;i<=n;i++)
    if (lung[i]==Maxx-1&&a[i]>=a[x])
    {
        printf ("%d ", a[i]);
        x=i;
        Maxx--;
    }



	return 0;
}