Pagini recente » Cod sursa (job #720636) | Cod sursa (job #2186277) | Cod sursa (job #2333812) | Cod sursa (job #1736854) | Cod sursa (job #804778)
Cod sursa(job #804778)
#include <iostream>
#include <cstdio>
using namespace std;
int maxim, minim, n, g, e[1002], c[1002], sol[15002];
int ct = 10000000, ct2 = 10000;
int main()
{
freopen("energii.in", "r", stdin);
freopen("energii.out", "w", stdout);
scanf("%d%d", &n, &g);
for(int i = 1; i <= n; i++)
{
scanf("%d%d", &e[i], &c[i]);
}
int minim = ct;
for(int i = 0; i <= g + ct2; i++)
sol[i] = ct;
for(int i = 1; i <= n; i++)
{
for(int j = g + ct2 - e[i]; j >= 0; j--)
if(sol[j] != ct)
if(sol[j + e[i]] > sol[j] + c[i])
sol[j + e[i]] = sol[j] + c[i];
if(sol[e[i]] > c[i])
sol[e[i]] = c[i];
}
for(int i = g; i <= g + ct2; i++)
if(minim > sol[i] && sol[i] != -1)
minim = sol[i];
printf("%d", minim);
return 0;
}