Pagini recente » Cod sursa (job #2810597) | Cod sursa (job #2119684) | Cod sursa (job #2739262) | Cod sursa (job #2753481) | Cod sursa (job #1482900)
#include<stdio.h>
#define MAX 100001
int a[MAX],sol[MAX],N,length[MAX],best;
int verifica(int poz)
{
if(poz)
if(sol[poz-1]>=sol[poz])
return 0;
return 1;
}
void bt(int i,int poz)
{
if(i==N)
{
if(best<poz)
{
best=poz;
for(int k=0;k<poz;k++)
length[k]=sol[k];
}
}
for(int p=i;p<N;p++)
{
sol[poz]=a[p];
if(verifica(poz))
bt(i+1,poz+1);
}
}
int main()
{
FILE* f1,*f2;
f1=fopen("scmax.in","r");
f2=fopen("scmax.out","w");
fscanf(f1,"%d",&N);
for(int i=0;i<N;i++)
fscanf(f1,"%d",&a[i]);
for(int i=0;i<N;i++)
bt(i,0);
fprintf(f2,"%d\n",best);
for(int i=0;i<best;i++)
fprintf(f2,"%d ",length[i]);
fcloseall();
return 0;
}