Cod sursa(job #18885)

Utilizator skyelHighScore skyel Data 18 februarie 2007 14:43:06
Problema Ghiozdan Scor 12
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include<fstream.h>
#define input "ghiozdan.in"
#define output "ghiozdan.out"
#define Nmax 20005

int n,a[Nmax],g,x,gact=0,sact[Nmax],spr[Nmax];

void btk(int k,int G,int s)
	{
	int i,j;
	if(G<=g)
		{
		if(G>gact)
			{
			gact=G;
			x=k;
		  //	for(j=1;j<=s;j++)
			 //	spr[j]=sact[j];
			}
		else
			if(G==gact&&k<x)
				{
				x=k;
			//	for(j=1;j<=s;j++)
			  //		spr[j]=sact[j];
				}
		for(i=s;i<=n;i++)
			if(sact[i]==0)
				{
				sact[i]=1;
				btk(k+1,G+a[i],i);
				sact[i]=0;
				}
		}


	}
int main()
	{
	int i;
	ifstream fin(input);
	ofstream fout(output);
	fin>>n>>g;
	for(i=1;i<=n;i++)
		fin>>a[i];
	btk(0,0,1);
	fout<<gact<<" "<<x<<"\n";
  //	for(i=1;i<=n;i++)
	 //	if(spr[i]==1)
		//	fout<<a[i]<<"\n";
	return 0;
	}