Pagini recente » Cod sursa (job #873226) | Cod sursa (job #2692003) | Cod sursa (job #2450791) | Cod sursa (job #1435409) | Cod sursa (job #1885667)
#include <fstream>
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
const int smax=10000;
const int nmax=1000;
const int inf=1e9;
int energie_produsa[nmax+1],cost_energie_produsa[nmax+1],cost_energie_pas[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];
}
for(int i=0; i<=smax; i++)
{
cost_energie_pas[i]=inf;
}
cost_energie_pas[0]=0;
for(int i=1; i<=g; i++)
{
for(int j=smax-energie_produsa[i]; j>=0; j--)
{
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=inf;
if(sum<w)
{
out<<-1;
}
else
{
for(int i=w; i<=smax; i++)
{
if(cost_energie_pas[i]<min)
min=cost_energie_pas[i];
}
out<<min;
}
return 0;
}