Pagini recente » Cod sursa (job #1123448) | Cod sursa (job #352718) | Cod sursa (job #885068) | Cod sursa (job #1760589) | Cod sursa (job #2267897)
#include <fstream>
using namespace std;
int g, w, eg[1000], cg[1000], dp[10000];
int main(){
int i, j;
ifstream fin ("energii.in");
fin >> g >> w;
for (i=0; i<g; i++)
fin >> eg[i] >> cg[i];
fin.close();
for (i=0; i<=w; i++)
dp[i]=-1;
dp[0]=0;
int s=10000000;
for (i=0; i<g; i++)
for (j=w-1; j>=0; j--)
if (dp[j]!=-1){
if (eg[i]+j>=w)
s=min(s, dp[j]+cg[i]);
if (eg[i]+j<w){
if (dp[j+eg[i]]==-1)
dp[j+eg[i]]=dp[j]+cg[i];
else
dp[j+eg[i]]=min(dp[j+eg[i]], dp[j]+cg[i]);
}
}
if (s==10000000)
s=-1;
ofstream fout ("energii.out");
fout << s;
fout.close();
return 0;
}