Pagini recente » Cod sursa (job #461923) | Cod sursa (job #2710747) | Cod sursa (job #2758662) | Cod sursa (job #946172) | Cod sursa (job #1542572)
#include <cstdio>
#include <climits>
using namespace std;
int cost[5001], e[5001], c[5001], g, w;
const int INF = INT_MAX;
FILE *fin = fopen("energii.in", "r");
FILE *fout = fopen("energii.out", "w");
int main()
{
fscanf(fin, "%d%d", &g, &w);
for(int i = 1; i <= g; i++)
fscanf(fin, "%d%d", &e[i], &c[i]);
int i, j;
for(j = 1; j <= w; j++)
cost[j] = INF;
cost[0] = 0;
for(i = 1; i <= g; i++)
for(j = w + e[i] - 1; j >= e[i]; j--)
{
if(cost[j-e[i]] != INF)
{
if(j >= w)
if(cost[j-e[i]] + c[i] < cost[w])
cost[w] = cost[j-e[i]] + c[i];
else;
else if(cost[j-e[i]] + c[i] < cost[j])
cost[j] = cost[j-e[i]] + c[i];
}
}
if(cost[w] != INF)
fprintf(fout, "%d\n", cost[w]);
else
fprintf(fout, "-1\n");
return 0;
}