Pagini recente » Cod sursa (job #408870) | Cod sursa (job #104493) | Cod sursa (job #2830244) | Cod sursa (job #2423069) | Cod sursa (job #1151192)
#include <iostream>
#include <cstdio>
using namespace std;
int n,G,c[1005],e[1005],x[1005][10005],maxx;
int main()
{
int i,j,aux;
FILE *f=fopen("energii.in","r");
FILE *g=fopen("energii.out","w");
fscanf(f,"%d%d",&n,&G);
for(i=1;i<=n;i++)
{
fscanf(f,"%d%d",&e[i],&c[i]);
maxx+=e[i];
for(j=1;j<=e[i];j++)
{
if(x[i-1][j])
x[i][j]=min(x[i-1][j],c[i]);
else x[i][j]=c[i];
}
for(j=e[i]+1;j<=maxx;j++)
{
if(x[i-1][j])
x[i][j]=min(c[i]+x[i-1][j-e[i]],x[i-1][j]);
else x[i][j]=c[i]+x[i-1][j-e[i]];
}
}
if(x[n][G])
fprintf(g,"%d\n",x[n][G]);
else fprintf(g,"-1\n");
return 0;
}