Cod sursa(job #14791)

Utilizator blasterzMircea Dima blasterz Data 9 februarie 2007 20:16:17
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <cstdio>
#include <algorithm>
using namespace std;
int dp[1024][5120], n, a[1024], b[1024], S;

void citire()
{
	freopen("energii.in", "r",stdin);
	scanf("%d\n", &n);
	scanf("%d\n", &S);
	for(int i=1;i<=n;i++) scanf("%d %d\n", &a[i], &b[i]);
}

void dynamic()
{
	int i, j;
	dp[1][a[1]]=b[1];
	
	for(i=2;i<=n;i++)
		for(j=0;j<=S;j++)
		{
			dp[i][j]=dp[i-1][j];
			if(j-a[i]>=0) dp[i][j]=min(dp[i][j], dp[i-1][j-a[i]]+b[i]);
		}
		
	freopen("energii.out", "w", stdout);
		printf("%d\n", dp[n][S]);
}

int main()
{
	citire();
	dynamic();
	return 0;
}