Pagini recente » Cod sursa (job #2234649) | Cod sursa (job #913792) | Cod sursa (job #14829) | Cod sursa (job #1834887) | Cod sursa (job #2468048)
#include <stdio.h>
#include <stdlib.h>
#define GMAX 1001
#define EMAX 5001
#define BIG 1e9
int W[GMAX],P[GMAX],profit[EMAX];
int main()
{
FILE *fin, *fout;
int g,E,i,j,ans;
fin = fopen("energii.in","r");
fout = fopen("energii.out","w");
fscanf(fin,"%d\n%d\n",&g,&E);
for(i=0;i<g;i++)
fscanf(fin,"%d %d",&P[i],&W[i]);
for(j=1;j<=E;j++)
profit[j] = -1;
ans = BIG;
for(i=0;i<g;i++)
for(j=E;j>=0;j--)
if(profit[j]!=-1){
if(j+P[i] >= E)
ans = ans < (profit[j]+W[i]) ? ans : (profit[j]+W[i]);
else if(profit[j]+W[i] < profit[j+P[i]])
profit[j+P[i]] = profit[j] + W[i];
}
if(ans == BIG)
fprintf(fout,"-1");
else
fprintf(fout,"%d",ans);
fclose(fin);
fclose(fout);
return 0;
}