Pagini recente » Cod sursa (job #215428) | Cod sursa (job #1250853) | Cod sursa (job #1343072) | Cod sursa (job #337386) | Cod sursa (job #531175)
Cod sursa(job #531175)
#include <stdio.h>
#define MAXIM 1001*10001
using namespace std;
int COST[5001];
int i,j,w,gen,en,co;
FILE *f,*g;
int main()
{
f=fopen("energii.in","r");
g=fopen("energii.out","w");
fscanf(f,"%d %d",&gen,&w);
COST[0]=0;
for (i=1;i<=w;i++)
COST[i]=MAXIM;
for (i=1;i<=gen;i++)
{
fscanf(f,"%d %d",&en,&co);
for (j=w;j>=0;j--)
if (COST[j]!=MAXIM)
{
if (COST[j]+co<COST[j+en] && j+en<=w)
COST[j+en]=COST[j]+co;
else
if (COST[j]+co<COST[w] && j+en>w)
COST[w]=COST[j]+co;
}
}
if (COST[w]!=MAXIM)
fprintf(g,"%d",COST[w]);
else
fprintf(g,"%d",-1);
fclose(f);
fclose(g);
return 0;
}