Pagini recente » Cod sursa (job #2567156) | Cod sursa (job #2315655) | Cod sursa (job #2885765) | Cod sursa (job #2157709) | Cod sursa (job #2371413)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
const int INF = 1 << 30;
int G, W, E[5005], C[5005], Cst[10005];
int main()
{
fin >> G >> W;
for(int i = 1; i <= G; ++i)
fin >> E[i] >> C[i];
for(int i = 1; i <= 10000; ++i)
Cst[i] = 1 << 30;
Cst[0] = 0;
for(int i = 1; i <= G; ++i)
{
for(int j = W - E[i]; j >= 0; --j)
Cst[j + E[i]] = min(Cst[j + E[i]], C[i] + Cst[j]);
for(int j = 1; j <= E[i]; ++j)
Cst[j] = min(Cst[j], C[i]);
}
fout << (Cst[W] == INF ? -1 : Cst[W]);
return 0;
}