Pagini recente » Cod sursa (job #57985) | Cod sursa (job #1280897) | Cod sursa (job #1345115) | Cod sursa (job #1322741) | Cod sursa (job #2131019)
#include <stdio.h>
#include <cstring>
#include <string>
#include <cmath>
#include <algorithm>
using namespace std;
FILE *f,*g;
int a[1002][5002];
struct elem
{
int e,c;
}v[1002];
int main()
{
int n,E,i,j,lc,lp;
f=fopen("energii.in","r");
g=fopen("energii.out","w");
fscanf(f,"%d",&n);
fscanf(f,"%d",&E);
for(i=1;i<=n;i++)
fscanf(f,"%d %d",&v[i].e,&v[i].c);
for(j=0;j<=E;j++)
a[0][j]=2000000000;
for(i=1;i<=n;i++)
{
for(j=1;j<=E;j++)
{
if(v[i].e<=j)
{
if(v[i].c+a[i-1][j-v[i].e]<a[i-1][j])
a[i][j]=v[i].c+a[i-1][j-v[i].e];
else
a[i][j]=a[i-1][j];
}
else
if(a[i-1][j]>v[i].c)
a[i][j]=v[i].c;
else
a[i][j]=a[i-1][j];
}
}
if(a[n][E]!=0)
fprintf(g,"%d",a[n][E]);
else
fprintf(g,"-1");
fclose(f);
fclose(g);
return 0;
}