Pagini recente » Cod sursa (job #728306) | Cod sursa (job #1762605) | Cod sursa (job #2177240) | Cod sursa (job #1190423) | Cod sursa (job #412697)
Cod sursa(job #412697)
#include <fstream>
#define wmax 5005
#define gmax 1005
#define inf 32000
using namespace std;
ifstream f("energii.in");
ofstream gout("energii.out");
struct generator { int e,cost; } g[gmax];
int s[wmax],gen,w;
void citire ()
{
f>>gen>>w;
for (int i=1; i<=gen; i++)
f>>g[i].e>>g[i].cost;
f.close ();
}
int cost ()
{
int i,j;
for (i=1; i<=w; i++)
s[i]=inf;
s[0]=0;
for (i=1; i<=gen; i++)
for (j=0; j<=w; j++)
if (j+g[i].e<w)
{
if (s[j+g[i].e]>s[j]+g[i].cost)
s[j+g[i].e]=s[j]+g[i].cost;
}
else
if (s[w]>s[j]+g[i].cost)
s[w]=s[j]+g[i].cost;
if (s[w]==inf) return -1;
return s[w];
}
int main ()
{
citire ();
gout<<cost ();
gout.close (); return 0;
}