Pagini recente » Cod sursa (job #1189725) | Cod sursa (job #1610316) | Cod sursa (job #2453179) | Cod sursa (job #814442) | Cod sursa (job #923717)
Cod sursa(job #923717)
#include <fstream>
#include <bitset>
using namespace std;
short g,w,i,energie[1005],cost[1005],y;
unsigned int costminim[20005],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<20000;++i) //dupa ce termin programul sa tratez si cazurile cand energia>w //fa aia cu activat
{
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;
}
}
}
}
for (i=w+1;i<20000;++i)
if (costminim[i]<costminim[w])
costminim[w]=costminim[i];
f2<<costminim[w]<<'\n';
f1.close();
f2.close();
return 0;
}