Pagini recente » Cod sursa (job #644707) | Cod sursa (job #2436011) | Cod sursa (job #2781126) | Cod sursa (job #2312184) | Cod sursa (job #1959499)
#include <cstdio>
#include <algorithm>
using namespace std;
int d[1000005];
int main()
{
freopen("energii.in" , "r" , stdin);
freopen("energii.out" , "w" , stdout);
int n , g , v , G , i , j , last , minim;
scanf("%d%d" , &n , &G);
d[0] = 0;
last = 0;
for(i = 1 ; i <= 1000000 ; i ++)
d[i] = -1;
for(i = 1 ; i <= n ; i ++)
{
scanf("%d%d" , &g , &v);
for(j = last ; j >= 0 ; j --)
{
if(d[j + g] != -1)
d[j + g] = min(d[j + g] , d[j] + v);
else
d[j + g] = d[j] + v + 1;
if(j + g > last)
last = j + g;
}
}
minim = d[G];
for(j = G + 1 ; j <= last ; j ++)
if(d[j] < minim)
minim = d[j];
if(G <= last)
printf("%d\n" , minim);
else
printf("-1\n");
return 0;
}