Pagini recente » Cod sursa (job #2672565) | Cod sursa (job #1214083) | Cod sursa (job #2044180) | Cod sursa (job #1890367) | Cod sursa (job #280675)
Cod sursa(job #280675)
#include <stdio.h>
#define DIM 1002
#define INF 10001
int e[DIM],c[DIM],s[5002];
int g,w,i,k,pMax,j,ok,min;
int main() {
FILE *f = fopen("energii.in","r");
FILE *q = fopen("energii.out","w");
fscanf(f,"%d %d",&g,&w);
for (i=1; i<=g; i++)
fscanf(f,"%d %d",&e[i],&c[i]);
for (i=1; i<=5001; i++)
s[i] = INF;
pMax = 0;
for (i=1; i<=g; i++)
for (j=pMax; j>=0; j--) {
if (s[j]!=INF) {
if (j+e[i] > w) {
if (s[w] > s[j]+c[i])
s[w] = s[j]+c[i];
}
else
if (s[j+e[i]] > s[j]+c[i])
s[j+e[i]] = s[j]+c[i];
}
if (j+e[i] > pMax && j+e[i] <= w)
pMax = j+e[i];
}
min = INF;
ok = 0;
for (i=1; i<=5001; i++)
if (i>=w && s[i]<min) {
min = s[i];
ok = 1;
}
if (!ok)
fprintf(q,"-1");
else
fprintf(q,"%d",min);
fclose(f);
fclose(q);
return 0;
}