Cod sursa(job #576671)

Utilizator mionelIon. M mionel Data 9 aprilie 2011 14:08:23
Problema Zebughil Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include<iostream>
#include<fstream>
#include<stdio.h>
using namespace std;
long g; int viz[18],n,nr,w[18],mini;
long gr[18];

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))
			{
				
				gr[nr]=gr[nr]+w[i];
				viz[i]=1;
				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;
					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;
			
		}
	
		mini=100000;
		nr=1;
		back(1);
		gr<<mini<<"\n";	
	}
}