Pagini recente » Cod sursa (job #587825) | Cod sursa (job #1391064) | Cod sursa (job #978522) | Cod sursa (job #379129) | Cod sursa (job #3154696)
#include <stdio.h>
#define MAX_E 10002
#define INT_MAX 1000000007
int d[MAX_E];
static inline int min(int a, int b) { return a < b ? a : b; }
static inline int max(int a, int b) { return a > b ? a : b; }
int main() {
FILE *fin, *fout;
int g, w;
int e, c;
int m, i;
int res;
fin = fopen("energii.in", "r");
fscanf(fin, "%d%d", &g, &w);
for (i = 1; i < w; i++)
d[i] = INT_MAX;
res = INT_MAX;
for (m = 0; m < g; m++) {
fscanf(fin, "%d%d", &e, &c);
for (i = w - 1; i >= w - e; i--)
if (d[i] + c < res)
res = d[i] + c;
for (i = w - e - 1; i > 0; i--)
if (d[i] + c < d[i + e])
d[i + e] = d[i] + c;
if (d[e] > c)
d[e] = c;
}
fclose(fin);
if (res == INT_MAX)
res = -1;
fout = fopen("energii.out", "w");
fprintf(fout, "%d", res);
fclose(fout);
return 0;
}