Cod sursa(job #701385)

Utilizator ValidatorPopescu Vali Validator Data 1 martie 2012 15:34:45
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<cstdio>
using namespace std;
#define Nmax 1010
#define Gmax 5010
#define inf 11000

int a[Nmax][Gmax],n,put;

void init()
{
 for(int i=0;i<=put;i++)
	a[0][i]=inf;
}
int min(int a,int b)
{
	if(a<b)return a;
	else return b;
}
int pd()
{
 int en,co,j,i;

 scanf("%d%d",&n,&put);
 init();
 for(i=1;i<=n;i++)
 {	scanf("%d%d",&en,&co);
	for(j=1;j<=put;j++)
	{	if(j<=en)	a[i][j]=min(co,a[i-1][j]);
		else		a[i][j]=min(a[i-1][j],a[i-1][j-en]+co);
	}
 }
 
 if(a[n][put]==inf)
	return -1;
 else
	return a[n][put];
}

int main()
{
 freopen("energii.in","r",stdin);
 freopen("energii.out","w",stdout);
 printf("%d\n",pd());

 return 0;
}