Cod sursa(job #576603)

Utilizator mionelIon. M mionel Data 9 aprilie 2011 13:38:00
Problema Zebughil Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include<iostream>
#include<fstream>
#include<stdio.h>
using namespace std;
long g; int viz[18],x[18],n,nr,w[18],mini,gr[18];
long long s;
int back(int k)
{
	int i;
	if(k==n+1)
	{
		if(nr<mini)
			mini=nr;
	}
	else
	{
		for(i=1;i<=n;i++)
			if((viz[i]==0)&&(gr[nr]+w[i]<=g))
			{
				//s=s+w[i];
				gr[nr]=gr[nr]+w[i];
				viz[i]=1;
				x[k]=w[i];
				back(k+1);
				viz[i]=0;
				gr[nr]=gr[nr]-w[i];
			}
				else if(viz[i]==0)
				{
					nr++;
					if(nr>mini)
					{	nr--;break;}
					
					
					gr[nr]=w[i];
					viz[i]=1;
					x[k]=w[i];
					back(k+1);
					viz[i]=0;
					gr[nr]=gr[nr]-w[i];
					nr--;
				}
					
		
	}

}
int main()
{
	ifstream f("zebughil.in");
	ofstream gr("zebughil.out");
	int i,j;
	for(i=1;i<=3;i++)
	{
		f>>n>>g;
		for(j=1;j<=n;j++)
		{	f>>w[j];
			viz[j]=0;
			x[j]=0;
		}
		s=0;
		mini=100000;
		nr=1;
		back(1);
		gr<<mini<<endl;	
	}
}