Cod sursa(job #949281)

Utilizator corina.ioanaSerbanescu Corina corina.ioana Data 13 mai 2013 09:26:27
Problema Subsir crescator maximal Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <cstdio>

using namespace std;
int lung [1000],a[1000],n,i,Max1,I;
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--)
	{
	    int Max=0;
	    for ( int j=i+1;j<=n;j++)
	    if (Max<lung[j]&&a[j]>a[i]) Max=lung[j];
	    lung[i]=Max+1;
	    if (Max1<lung[i])
	    {
	        Max1=lung[i];
	        I=i;
	    }
	}
    printf ("%d\n", Max1);
    printf("%d ", a[I]);
    for (i=I+1;i<=n;i++)
    if (lung[i]==Max1-1&&a[i]>=a[I])
    {
        printf ("%d ", a[i]);
        I=i;
        Max1--;
    }



	return 0;
}