Pagini recente » Cod sursa (job #2655203) | Cod sursa (job #779002) | Cod sursa (job #723058) | Cod sursa (job #1730760) | Cod sursa (job #490245)
Cod sursa(job #490245)
#include <fstream>
using namespace std;
const char InFile[]="energii.in";
const char OutFile[]="energii.out";
const int MaxN=10006;
const int MAX=1<<30;
ifstream fin(InFile);
ofstream fout(OutFile);
int W,CGi,EGi,G,sol,marked[MaxN],cost[MaxN];
int main()
{
fin>>G>>W;
cost[0]=0;
marked[0]=1;
for(register int i=0;i<G;++i)
{
fin>>EGi>>CGi;
for(register int j=MaxN;j>=0;--j)
{
if(marked[j]==1)
{
if(marked[j+EGi]==1)
{
cost[j+EGi]=min(cost[j+EGi],cost[j]+CGi);
}
else
{
marked[j+EGi]=1;
cost[j+EGi]=CGi+cost[j];
}
}
}
}
fin.close();
sol=MAX;
for(register int i=W;i<MaxN;++i)
{
if(marked[i]==1)
{
if(sol>cost[i])
{
sol=cost[i];
}
}
}
if(sol==MAX)
{
sol=-1;
}
fout<<sol;
fout.close();
return 0;
}