Pagini recente » Cod sursa (job #940029) | Cod sursa (job #2947526) | Cod sursa (job #483324) | Cod sursa (job #1298721) | Cod sursa (job #444244)
Cod sursa(job #444244)
#include <cstdio>
int a[300000];
int main() {
FILE *ff,*gg;
ff = fopen("energii.in","r");
gg = fopen("energii.out","w");
int g, w;
fscanf(ff,"%d\n%d\n",&g,&w);
int e,c;
for (int i=1; i<=w; ++i) {
a[i] = -1;
}
for (int i=1;i<=g; i++) {
fscanf(ff,"%d %d\n", &e, &c);
for (int j=w; j>=e+1; --j) {
if (a[j-e]!=-1) {
if (a[j]==-1 || a[j-e]+c<a[j]) {
a[j] = a[j-e]+c;
}
}
}
for (int j=e;j>=0;--j) {
if (a[j]==-1 || a[j]>c)
a[j] = c;
}
/*for (int i=1; i<=w; ++i)
printf("%d ",a[i]);
printf("\n");
getchar();*/
}
//if (a[w]==0) fprintf(gg,"-1");
/*else*/ fprintf(gg,"%d",a[w]);
fclose(ff);
fclose(gg);
return 0;
}