Cod sursa(job #243750)

Utilizator raica_cristiraica dumitru cristian raica_cristi Data 13 ianuarie 2009 22:19:10
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include<stdio.h>
int a[100000],m,i,k,b[100000],c[100000],p,n,max;
void copy()
{max=k;
     for(p=1;p<=k;p++)
     c[p]=b[p];
     }
void back(int i)
{
     for(i;i<=n;i++)
     {
                    
                   if(a[i]>b[k])
                   {//printf("%d %d %d %d\n",a[i],b[k],k,max);
                   b[++k]=a[i];
                   if(k>max)
                   copy();
                   back(i+1);
                   k--;
                   }
                   }
               
}
void read()
{
     scanf("%d",&n);
     for(i=1;i<=n;i++)
     scanf("%d",&a[i]);
}
void print()
{
     printf("%d\n",max);
     for(i=1;i<=max;i++)
     printf("%d ",c[i]);
     }
int main ()
{
    freopen("scmax.in","r",stdin);
    freopen("scmax.out","w",stdout);
    b[0]=b[1]=k=max=0;
    read();
    back(1);
    print();
    return 0;
}