Pagini recente » Cod sursa (job #2534089) | Cod sursa (job #301247) | Cod sursa (job #2793558) | Cod sursa (job #985261) | Cod sursa (job #1151089)
#include <iostream>
#include <cstdio>
using namespace std;
int n,G,w[5105],p[1005],x[1005][5005];
int main()
{
int i,j;
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",&w[i],&p[i]);
for(j=1;j<=w[i];j++)
{
x[i][j]=p[i];
if(x[i-1][j])
{
x[i][j]=min(x[i][j],x[i-1][j]);
if(x[i][j+w[i]])
x[i][j+w[i]]=min(p[i]+x[i][j-1],x[i][j+w[i]]);
else x[i][j+w[i]]=p[i]+x[i][j-1];
}
}
}
if(x[n][G])
fprintf(g,"%d\n",x[n][G]);
else fprintf(g,"-1\n");
return 0;
}