Cod sursa(job #1482900)

Utilizator BodStfBodoarca Stefan BodStf Data 8 septembrie 2015 12:06:46
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#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;
}