Pagini recente » Cod sursa (job #1216006) | Cod sursa (job #1434259) | Cod sursa (job #2825045) | Cod sursa (job #2858951) | Cod sursa (job #1959528)
#include <cstdio>
#include <algorithm>
using namespace std;
int d[1000010];
const int INF = 1e9;
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 <= 2 * G; i ++)
d[i] = INF;
for(i = 1 ; i <= n ; i ++)
{
scanf("%d%d" , &g , &v);
for(j = last ; j >= 0 ; j --)
{
d[j + g] = min(d[j + g] , d[j] + v);
if(j + g > last)
last = j + g;
}
}
minim = INF;
for(j = G ; j <= last ; j ++)
minim = min(minim , d[j]);
if(G <= last)
printf("%d\n" , minim);
else
printf("-1\n");
return 0;
}