Cod sursa(job #113429)

Utilizator gabitzish1Gabriel Bitis gabitzish1 Data 10 decembrie 2007 00:15:39
Problema Zebughil Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include<stdio.h>

int n, g, s[20], contor, v[20], min, ok;

void citire()
{
	scanf("%d %d", &n, &g);
	for (int i = 1; i <= n; i++) scanf ("%d",v + i);
}

int verif(int nr)
{
	int sum, i, j;
	for (i = 1; i <= nr; i++)
	{
		sum = 0;
		for (j = 1; j <= n; j++) if (s[j] == i) sum += v[j];
		if (sum > g) return 0;
	}
	return 1;
}


void back(int k, int nr)
{
	int i;

	if (k > n) {if (verif(nr)) ok = 1;}
        else
	{
		for (i = 1; i <= nr; i++)
		{
			s[k] = i;			
			back (k + 1, nr);
			if (ok) break;
		}
	}
}

int main()
{
	freopen("zebughil.in","r",stdin);
	freopen("zebughil.out","w",stdout);

	int z, i;
	for (z = 1; z <= 3; z++)
	{
		citire();
		contor = 0;
		min = 500;
		ok = 0;
		for (i = 1; i <= n; i++) { back(1,i); if (ok) break;}
		printf("%d\n",i);
	}
	return 0;
}