Cod sursa(job #749725)

Utilizator wscsprint3rIrimescu Stefan wscsprint3r Data 18 mai 2012 14:39:16
Problema Energii Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
//
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
FILE *f=fopen("energii.in","r"), *g=fopen("energii.out","w");
int i,j,k,n,W,val[1001],w[1001],t[1001][1001];

void read()
{
	fscanf(f,"%d %d", &n, &W);
	for(i=1;i<=n;i++)
		fscanf(f,"%d %d",&val[i],&w[i]);
}

int max(int a, int b)
{
	if(a>=b)
		return a;
	else
		return b;

}

void solve_knapsack()
{

	for(i=1;i<=n;i++)
		for(j=0;j<=W;j++)
		{
			if(j>=w[i])
				t[i][j]=max(t[i-1][j],t[i-1][j-w[i]]+val[i]);
			else
				t[i][j]=t[i-1][j];
		}

for(i=0;i<=W;i++)
	if(t[n][i]>=W)
	break;

fprintf(g,"%d",i);
fcloseall();
}

int main()
{
	read();
	solve_knapsack();
	return 0;
}