Cod sursa(job #130780)

Utilizator gabitzish1Gabriel Bitis gabitzish1 Data 1 februarie 2008 21:35:18
Problema Zebughil Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <stdio.h>
#include <iostream.h>
#include <stdlib.h>
int n, g, s[20], v[20], viz[20], min;

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

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



void back(int k)
{
	int i;
	if (k > n) verif();
	else
		for (i = 1; i <= n; i++)
			if (!viz[i])
			{
				s[k] = v[i];
				viz[i] = 1;
				back(k + 1);
				viz[i] = 0;
			}		
}

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

	int z;
	for (z = 1; z <= 3; z++)
	{
		citire();
		min = 650;
		back(1);
		printf("%d\n",min);
	}
	return 0;
}