Pagini recente » Cod sursa (job #606638) | Cod sursa (job #2256280) | Cod sursa (job #1781281) | Cod sursa (job #2100683) | Cod sursa (job #2410629)
#include <iostream>
#include <fstream>
#include <algorithm>
#define Inf 10000001
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int N, W, i, j, Sol[1001], Sum, Out=Inf;
struct Gen{
int energy;
int cost;
};
Gen List[1001];
int main()
{
fin>>N>>W;
for(i=1; i<=N; ++i) {fin>>List[i].energy>>List[i].cost; Sum+=List[i].energy;}
if(Sum<W){fout<<"-1"; return 0;}
for(i=1; i<=Sum; ++i) Sol[i]=Inf;
for(i=1; i<=N; ++i)
for(j=Sum-List[i].energy; j>=0; --j)
Sol[j+List[i].energy]=min(Sol[j+List[i].energy], Sol[j]+List[i].cost);
for(i=W; i<=Sum; ++i) Out=min(Out, Sol[i]);
fout<<Out;
return 0;
}