Pagini recente » Cod sursa (job #1625488) | Cod sursa (job #1276568) | Autentificare | Cod sursa (job #633748) | Cod sursa (job #995064)
Cod sursa(job #995064)
#include <fstream>
#include <cstring>
#include <algorithm>
#define N 5001
#define INF 1<<30
using namespace std;
FILE *fin=fopen("energii.in", "r"), *fout=fopen("energii.out", "w");
int d[2][N];
int main ()
{
int n, w, i, j, a, b;
bool k = 0;
fscanf (fin, "%d%d", &n, &w);
for (i = 1; i <= w; ++i)
d[0][i] = INF;
for (i = 1; i <= n; ++i) {
fscanf (fin, "%d%d", &a, &b);
k = !k;
for (j = 1; j <= w; ++j)
if (j <= a)
d[k][j] = min(d[!k][j], b);
else
d[k][j] = min(d[!k][j], d[!k][j - a] + b);
}
if (d[k][w] == INF)
fprintf(fout, "-1");
else
fprintf(fout, "%d", d[k][w]);
}