Pagini recente » Cod sursa (job #2820962) | Cod sursa (job #468902) | Cod sursa (job #242704) | Cod sursa (job #2242423) | Cod sursa (job #412701)
Cod sursa(job #412701)
#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=w-1; j>=0; 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;
}