Pagini recente » Borderou de evaluare (job #2828030) | Borderou de evaluare (job #1035971) | Borderou de evaluare (job #312337) | Borderou de evaluare (job #598964) | Cod sursa (job #670246)
Cod sursa(job #670246)
#include <cstdio>
#define MAX 5050
#define INF 2000000000
using namespace std;
int v[MAX];
int nrGen, power;
void citSolve()
{
freopen("energii.in", "r", stdin);
int energy, cost;
scanf("%d\n%d\n", &nrGen, &power);
for(int i = 1; i <= power; i++)
{
v[i] = INF;
}
for(int i = 1; i <= nrGen; i++)
{
scanf("%d %d\n", &energy, &cost);
for(int j = power; j >= 0; j--)
{
if(v[j] != INF)
{
if(j + energy >= power && v[power] > v[j] + cost)
{
v[power] = v[j] + cost;
}
if(j + energy < power && v[j + energy] > v[j] + cost)
{
v[j + energy] = v[j] + cost;
}
}
}
}
fclose(stdin);
}
void afisare()
{
freopen("energii.out", "w", stdout);
if(v[power] == INF)
{
printf("%d", -1);
}
else
{
printf("%d", v[power]);
}
fclose(stdout);
}
int main()
{
citSolve();
afisare();
return 0;
}