Pagini recente » Cod sursa (job #1885928) | Cod sursa (job #1684607) | Cod sursa (job #2741503) | Cod sursa (job #151684) | Cod sursa (job #1075992)
#include <fstream>
#include <stdio.h>
unsigned mat[50][50];
unsigned n,w,a[500],b[500],inf=9999,i,j;
unsigned minim(unsigned a,unsigned b)
{
if(a<b) return a;
else return b;
}
int main()
{
FILE*f;
f=fopen("energii.in","r");
fscanf(f,"%u%u",&n,&w);
for(i=1;i<=n;i++)
fscanf(f,"%u%u",&a[i],&b[i]);
fclose(f);
for(i=0;i<=n;i++)
for(j=1;j<=w;j++)
mat[i][j]=inf;
for(i=1;i<=n;i++)
for(j=1;j<=w;j++)
if(a[i]<=j) mat[i][j]=minim(b[i]+mat[i-1][j-a[i]],mat[i-1][j]);
else mat[i][j]=minim(b[i],mat[i-1][j]);
FILE*g;
g=fopen("energii.out","w");
if(mat[n][w]!=inf) fprintf(g,"%u",mat[n][w]);
else fprintf(g,"%d",-1);
fclose(g);
return 0;
}