Cod sursa(job #798068)

Utilizator raulstoinStoin Raul raulstoin Data 15 octombrie 2012 17:44:40
Problema Subsir crescator maximal Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include<cstdio>
using namespace std;
int a[100005],b[100005],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,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--;
                n--;
            }
            else
                if(a[i-1]>a[i])
                    b[i]=1;
        }

        if(lung<=b[i])
        {
            lung=b[i];
            poz=i;
        }
	}
	printf("%d\n",lung);
	afis(poz-1);
	return 0;
}