Pagini recente » Cod sursa (job #3875) | Cod sursa (job #2383984) | Cod sursa (job #2418529) | Cod sursa (job #2893921) | Cod sursa (job #1107617)
#include<fstream>
#include<cstdlib>
#include<iostream>
#include<algorithm>
#include<stdio.h>
using namespace std;
/*ifstream f("energii.in");
ofstream g("energii.out");*/
int min(short a,short b)
{
if(a<b)return a;
else return b;
}
int C[1002][5002],se;
int Wp[1001],Cp[1001],G,W;
void solve()
{
int i,j;
if(se<W)
printf("-1");
else
{
for(i=0;i<=G;i++)C[i][0]=10002;
for(i=0;i<=W;i++)C[0][i]=10002;
for(i=1;i<=G;i++)
for(j=1;j<=W;j++)
if (Wp[i]<j)
C[i][j]=min(Cp[i]+C[i-1][j-Wp[i]],C[i-1][j]);
else C[i][j]=min(C[i-1][j],Cp[i]);
//g<<C[G][W];
printf("%d",C[G][W]);
}
}
int main()
{
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
//f>>G>>W;
scanf("%d%d",&G,&W);
for(int i=1;i<=G;i++)
{
//f>>Wp[i]>>Cp[i];
scanf("%d%d",&Wp[i],&Cp[i]);
se+=Wp[i];
}
solve();
return 0;
}