Pagini recente » Istoria paginii stelele-2009/9-10/clasament/runda-2 | Cod sursa (job #308315) | Cod sursa (job #3135719) | Cod sursa (job #2188394) | Cod sursa (job #357638)
Cod sursa(job #357638)
#include <stdio.h>
#define INF 10000000
#define G 1002
#define W 5002
int energie[G];
int cost[G];
int lucru[W];
int main ()
{FILE *fin=fopen("energii.in","r");
if(!fin)return 0;
FILE *fout=fopen("energii.out","w");
if(!fout)return 0;
int g,w,i,j,costTot=INF;
fscanf(fin,"%d %d",&g,&w);
for (i=0;i<g;i++)
{fscanf(fin,"%d %d",&energie[i],&cost[i]);
}
lucru[0]=0;
for (i=1;i<w;i++)
{lucru[i]=INF;
}
for (j=0;j<g;j++)
{for (i=w-1;i>=0;i--)
{if(energie[j]+i>=w)
{if(cost[j]+lucru[i]<costTot)
{costTot=cost[j]+lucru[i];
}
}
else
{if(cost[j]+lucru[i]<lucru[i+energie[j]])
{lucru[i+energie[j]]=cost[j]+lucru[i];
}
}
}
}
if(costTot==INF)
{fprintf(fout,"-1");
}
else
{fprintf(fout,"%d",costTot);
}
fclose(fout);
return 0;
}