Pagini recente » Cod sursa (job #40582) | Cod sursa (job #2137338) | Cod sursa (job #2704797) | Cod sursa (job #105534) | Cod sursa (job #2468110)
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream in("energii.in");
ofstream out("energii.out");
int g,w;
in>>g>>w;
int e[g+5],c[g+5],total=0;
for (int i=0;i<g;i++)
{
in>>e[i]>>c[i];
total+=e[i];
}
int energie[total+5];
energie[0]=0;
for (int i=1;i<=total;i++)
{
energie[i]=-1;
}
for (int i=0;i<g;i++)
{
for (int j=total-e[i];j>=0;j--)
{
if (energie[j]!=-1)
{
if (energie[j+e[i]]!=-1)
{ if (c[i]+energie[j]<energie[j+e[i]])
{
if (energie[j+e[i]]<=w)
{
energie[j+e[i]]=c[i]+energie[j];
}
else
energie[w]=c[i]+energie[j];
}
}
else
{
if (j+e[i]<=w)
{
energie[j+e[i]]=c[i]+energie[j];
}
else
energie[w]=c[i]+energie[j];
}
}
}
}
out<<energie[w];
in.close();
out.close();
return 0;
}