Pagini recente » Cod sursa (job #2865220) | Cod sursa (job #3168726) | Cod sursa (job #2602943) | Cod sursa (job #3032610) | Cod sursa (job #1866096)
#include <fstream>
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
const int smax=10000;
const int nmax=5000;
int energie_produsa[smax+1],cost_energie_produsa[smax+1],cost_energie_pas[smax+1];
bool v[smax+1];
int main()
{
int g,w;
in>>g>>w;
int sum=0;
for(int i=1; i<=g; i++)
{
in>>energie_produsa[i]>>cost_energie_produsa[i];
sum+=energie_produsa[i];
}
v[0]=1;
for(int i=0; i<=sum; i++)
{
cost_energie_pas[i]=smax+1;
}
cost_energie_pas[0]=0;
for(int i=1; i<=g; i++)
{
for(int j=sum; j>=0; j--)
{
if(v[j]==1)
{
v[j+energie_produsa[i]]=1;
if(cost_energie_produsa[i]+cost_energie_pas[j] < cost_energie_pas[j+energie_produsa[i]])
cost_energie_pas[j+energie_produsa[i]] = cost_energie_produsa[i]+cost_energie_pas[j];
}
}
}
int min=1000000;
for(int i=w; i<=sum; i++)
{
if(cost_energie_pas[i]<min)
min=cost_energie_pas[i];
}
out<<min;
return 0;
}