Pagini recente » Cod sursa (job #1857676) | Cod sursa (job #47542) | Cod sursa (job #533355) | Cod sursa (job #1866682) | Cod sursa (job #921777)
Cod sursa(job #921777)
#include <fstream>
#include <bitset>
using namespace std;
short g,w,i,energie[1005],cost[1005],y;
unsigned int costminim[5005],s;
bitset <5005>posibil;
int main()
{
ifstream f1("energii.in");
ofstream f2("energii.out");
f1>>g>>w;
for (i=1;i<=g;++i)
f1>>energie[i]>>cost[i];
posibil[0]=1;
for (i=1;i<=20;++i) //dupa ce termin programul sa tratez si cazurile cand energia>w
{
costminim[i]=1000000000;
for (y=1;y<=g;++y)
{
if ((energie[y]<=i)&&(posibil[i-energie[y]]))
{
s=cost[y]+costminim[i-energie[y]];
if (s<costminim[i])
{
costminim[i]=s;
posibil[i]=1;
}
}
}
}
if (posibil[w])
f2<<costminim[w]<<'\n';
f1.close();
f2.close();
return 0;
}