Pagini recente » Cod sursa (job #2922547) | Cod sursa (job #2517666) | Cod sursa (job #1224474) | Cod sursa (job #709927) | Cod sursa (job #2163129)
#include <iostream>
#include <fstream>
std::ifstream fin ("energii.in");
std::ofstream fout ("energii.out");
const int MaxN = 1001, MaxW = 5001, Inf = 1 << 30;
int n, W, e[MaxN], c[MaxN], a[MaxW], minim;
void ReadData();
void Solve();
void Write();
int main ()
{
ReadData();
Solve();
Write();
}
void ReadData()
{
fin >> n;
fin >> W;
for (int i = 1; i <= n; ++i)
fin >> e[i] >> c[i];
}
void Solve()
{
for (int i = 0; i <= MaxW; ++i)
a[i] = Inf;
a[0] = 0;
for (int i = 1; i <= n; ++i)
for (int j = W; j >= 0; --j)
if (a[j] != Inf && a[j + e[i]] > a[j] + c[i])
a[j + e[i]] = a[j] + c[i];
minim = Inf;
for (int i = W; i <= MaxW; ++i)
if (a[i] < minim)
minim = a[i];
}
void Write()
{
fout << minim;
}