Pagini recente » Cod sursa (job #617448) | Cod sursa (job #2520596) | Cod sursa (job #404238) | Cod sursa (job #314958) | Cod sursa (job #412643)
Cod sursa(job #412643)
#include <fstream>
#define VAL 20000000
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
int cost[150000];
int c[1100],e[1100];
long val=VAL,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])
{
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)
if(val>cost[j+e[i]])
val=cost[j+e[i]];
if(max<j+e[i])
max=j+e[i];
}
}
if(W<max)
max=W;
}
if(val==VAL)
out<<'-1';
else
out<<--val;
return 0;
}