Pagini recente » Cod sursa (job #244735) | Cod sursa (job #1979579) | Cod sursa (job #1919030) | Cod sursa (job #1018069) | Cod sursa (job #2542100)
#include <iostream>
#include <fstream>
#include <utility>
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
int v[1100][5100];
int g, w;
pair<int, int> gen[1100];
const int MAXI = 1e7;
void scan()
{
in >> g >> w;
for(int i = 1; i <= g; i++)
in >> gen[i].first >> gen[i].second;
}
void preFill()
{
for(int i = 1; i <= w; i++)
{
if(gen[1].first >= i)
v[1][i] = gen[1].second;
else
v[1][i] = MAXI;
}
}
void solve()
{
for(int i = 2; i <= g; i++)
{
for(int j = 1; j <= w; j++)
{
if(j - gen[i].first >= 0)
v[i][j] = min(v[i-1][j], v[i-1][j - gen[i].first] + gen[i].second);
else
v[i][j] = min(v[i-1][j], gen[i].second);
}
}
}
int main()
{
scan();
preFill();
solve();
/*for(int i = 1; i <= g; i++)
{
for(int j = 1; j <= w; j++)
cout << v[i][j] << ' ';
cout << '\n';
}*/
out << v[g][w] << '\n';
return 0;
}