Pagini recente » Cod sursa (job #2718102) | Cod sursa (job #2111084) | Cod sursa (job #148562) | Cod sursa (job #2257859) | Cod sursa (job #608710)
Cod sursa(job #608710)
#include<cstdio>
using namespace std;
int n,G;
int e[1005],g[1005];
int best[1005][5005];
int sol;
void Citire()
{
int i;
freopen("energii.in","r",stdin);
scanf("%d %d",&n,&G);
for(i=1;i<=n;i++)
scanf("%d %d",e+i,g+i);
}
inline int Min(int a,int b)
{
if(a<b)
return a;
return b;
}
void Rezolvare()
{
int i,j;
for(i=0;i<=n;i++)
for(j=1;j<=G;j++)
best[i][j]=2000000000;
for(i=1;i<=n;i++)
{
for(j=1;j<=G;j++)
{
if(e[i]<=j)
best[i][j]=Min(best[i-1][j],best[i-1][j-e[i]]+g[i]);
else
best[i][j]=Min(best[i-1][j],g[i]);
}
}
}
void Afisare()
{
freopen("energii.out","w",stdout);
sol=best[n][G];
if(sol!=2000000000)
printf("%d\n",sol);
else
printf("-1\n");
}
int main()
{
Citire();
Rezolvare();
Afisare();
return 0;
}