Cod sursa(job #798055)

Utilizator raulstoinStoin Raul raulstoin Data 15 octombrie 2012 17:32:38
Problema Subsir crescator maximal Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include<cstdio>
using namespace std;
int a[100002],b[100002],n;
void afis(int ind)
{
    if(b[ind]<b[ind+1] && ind)
    {
        afis(ind-1);
        printf("%d ",a[ind+1]);
        return;
    }
    printf("%d ",a[ind+1]);
}
int main()
{
	int i,j,m;
	freopen("scmax.in","r",stdin);
	freopen("scmax.out","w",stdout);
	scanf("%d",&n);
	int lung=1,max=0,poz=1;
	for(i=1;i<=n;i++)
	{
	    scanf("%d",&a[i]);
	    if(a[i-1]<a[i])
            b[i]=b[i-1]+1;
        else
        {
            if(a[i-1]==a[i])
                i--;
            if(a[i-1]>a[i])
                b[i]=1;
        }

        if(lung<b[i])
        {
            lung=b[i];
            max=a[i];
            poz=i;
        }

	}
	printf("%d\n",lung);
	afis(poz-1);
	return 0;
}