Pagini recente » Cod sursa (job #2812055) | Cod sursa (job #180490) | Cod sursa (job #471588) | Cod sursa (job #2276059) | Cod sursa (job #2163126)
#include <iostream>
#include <fstream>
std::ifstream fin ("test.in");
std::ofstream fout ("test.out");
const int MaxN = 1001, MaxG = 11001, Inf = 1 << 30;
int n, G, a[MaxG], e[MaxN], c[MaxN], sol;
void ReadData();
void Solve();
void Write();
int main ()
{
ReadData();
Solve();
Write();
}
void ReadData()
{
fin >> n;
fin >> G;
for (int i = 1; i <= n; ++i)
fin >> e[i] >> c[i];
}
void Solve()
{
for (int i = 0; i <= MaxG; ++i)
a[i] = Inf;
a[0] = 0;
for (int i = 1; i <= n; ++i)
{
for (int j = G; j >= 0; --j)
if (a[j] != Inf && a[j + e[i]] > a[j] + c[i])
a[j + e[i]] = a[j] + c[i];
}
sol = Inf;
for (int i = G; i <= MaxG; ++i)
if (a[i] < sol)
sol = a[i];
}
void Write()
{
fout << sol;
}