Pagini recente » Cod sursa (job #538259) | Cod sursa (job #341982) | Cod sursa (job #534204) | Cod sursa (job #1733500) | Cod sursa (job #412624)
Cod sursa(job #412624)
#include <fstream>
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
int cost[15000];
int c[1100],e[1100];
long val=2000000,W;
int i,j,g;
int main ()
{
in>>g>>W;
for(i=1;i<=g;i++)
in>>e[i]>>c[i];
int max = 0;
cost[0]=1;
for(i=1;i<=g;i++)
for(j=max;j>-1;j--)
{
if(cost[j]>0)
{
if(cost[j+e[i]]==0||cost[j+e[i]]>cost[j]+c[i])
{
cost[j+e[i]]=cost[j]+c[i];
if(j+e[i]>=W&&val>cost[j+e[i]])
val=cost[j+e[i]];
if(val>j+e[i])
max=j+e[i];
}
}
if(W<max)
max=W;
}
if(val==2000000)
out<<'-1';
else
out<<--val;
return 0;
}