Pagini recente » Cod sursa (job #2448847) | Cod sursa (job #1980915) | Cod sursa (job #225116) | Cod sursa (job #345287) | Cod sursa (job #1643173)
#include <fstream>
#include <cstring>
#define GMax 1001
#define WMax 5001
#define INF 2e9
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int g[GMax], w[WMax], a[GMax], b[GMax], G, W;
int mn;
void Citire()
{
int i;
fin >> G >> W;
for (i = 1; i <= G; ++ i)
fin >> g[i] >> w[i];
}
void Energii()
{
int i, j;
for (i = 1; i <= W; ++ i)
a[i] = b[i] = INF;
for (i = 1; i <= G; ++ i)
{
for (j = 1; j <= W; ++ j)
if(j - g[i] >= 0) b[j] = min(b[j], a[j - g[i]] + w[i]);
else b[j] = min(b[j], w[i]);
memcpy(a,b,sizeof(b));
}
}
int main()
{
Citire();
fin.close();
Energii();
if (a[W] != INF) fout << a[W] << "\n";
else fout << -1 << "\n";
fout.close();
return 0;
}