Pagini recente » Cod sursa (job #182146) | Istoria paginii utilizator/dianadianap | Cod sursa (job #1875869) | Cod sursa (job #454136) | Cod sursa (job #2100784)
#include <fstream>
#define MAX 1000000
using namespace std;
int n,G,i,j,wi,gi,d[2][10005],ok,ans,w[1005],g[1005];
int main()
{
ifstream fin("energii.in");
ofstream fout("energii.out");
fin>>n>>G;
ok=0;
ans=MAX;
for(i=1;i<=n;i++)
{
fin>>w[i]>>g[i];
}
for(i=1;i<=G;i++)
{
if(w[1]>=i)d[ok][i]=g[1];
else d[ok][i]=MAX;
}
for(i=1;i<=n;i++)
{wi=w[i];gi=g[i];ok=1-ok;
for(j=1;j<=G;j++)
{
d[ok][j]=d[1-ok][j];
if(wi>=j)d[ok][j]=min(d[1-ok][j],gi);
else
{
d[ok][j]=min(d[1-ok][j],gi+d[1-ok][j-w[i]]);
}
}
// if(d[1-ok][G]>=G)ans=min(ans,d[1-ok][g]); fout<<d[1-ok][g]<<" ";
//fout<<"\n";
}
if(d[ok][G]<MAX) fout<<d[ok][G];
else fout<<"-1\n";
return 0;
}