Cod sursa(job #1033737)

Utilizator rossirobiMadarasz Robert Rossi rossirobi Data 17 noiembrie 2013 15:01:30
Problema Energii Scor 15
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include<stdio.h>
#define min(a,b) (a<b)?a:b

int n=0,E=0;
int c[1002]={0};
int e[1002]={0};
int u[1002]={0};
int best = 32767;

void msum()
{
	int m=0;
	for(int i=0;i<n;++i) (u[i])?m+=c[i]:m+=0;
	if(m<best) best = m;
}

int gen(int i,int s,int *c,int *e)
{
	if(i<0) return 32767;
	if(s>=E) {msum();return 32767;}; 

	int b=0,j=0;

	u[i]=1;
	b = gen(i-1,s+e[i],c,e);
	u[i]=0;

	j = gen(i-1,s,c,e);

	return min(b,j);
}

int main()
{
	freopen("energii.in","r",stdin);
	freopen("energii.out","w",stdout);
	scanf("%i%i",&n,&E);
	for(int i=0;i<n;i++)scanf("%i%i",e+i,c+i);
	gen(n-1,0,c,e);
	printf("%i",best);
	return 0;
}