Pagini recente » Cod sursa (job #2759998) | Cod sursa (job #1857239) | Cod sursa (job #100541) | Cod sursa (job #1283849) | Cod sursa (job #2013660)
#include <bits/stdc++.h>
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
const int INF = 2000001;
int nr[1000011],a[1001],b[1001],w,Gmax,sum,minim;
int main()
{
f>>w>>Gmax;
for(int i=1;i<=w;++i)
{f>>a[i]>>b[i];
sum+=a[i];
}
for(int i=1;i<=sum;++i)
nr[i]=INF;
nr[0]=1;
for(int i=1;i<=w;++i)
{
for(int j=Gmax;j>=0;--j)
if(nr[j]!=INF && j+a[i]<=sum)
nr[j+a[i]]=min(nr[j+a[i]],nr[j]+b[i]);
}
minim=nr[Gmax];
for(int i=Gmax+1;i<=sum;++i)
minim=min(minim,nr[i]);
if(minim==INF)
g<<-1;
else
g<<minim-1;
return 0;
}