Pagini recente » Cod sursa (job #1549423) | Cod sursa (job #2749118) | Cod sursa (job #645471) | Cod sursa (job #1506378) | Cod sursa (job #2366018)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
const int MOD = (1 << 30);
const int NMAX = 10002;
int G,W;
int g[1002],w[1002];
int c[10002];
int sumag,sumaw;
void Read()
{
fin>>G>>W;
for(int i=1;i<=G;++i)
{
fin>>w[i]>>g[i];
sumaw+=w[i];
sumag+=g[i];
}
}
void Solve()
{
if(W>sumaw){fout<<-1;return;}
for(int i=1;i<NMAX;++i)c[i]=MOD;
for(int i=1;i<=G;++i)
{
for(int j=NMAX-1-w[i];j>=0;--j)
if(c[j+w[i]]>c[j]+g[i])
c[j+w[i]]=c[j]+g[i];
}
int cost=MOD;
for(int i=W;i<NMAX;++i)
cost=min(cost,c[i]);
fout<<cost;
}
int main()
{
Read();
Solve();
return 0;