Pagini recente » Cod sursa (job #933160) | Cod sursa (job #1978672) | Cod sursa (job #1358440) | Cod sursa (job #2772309) | Cod sursa (job #1150354)
#include <iostream>
#include <cstdio>
using namespace std;
int Putere[10001],Cost[10001],Val[10001],s,i,N,W,sc,j,sol=999999;
int main()
{
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
cin>>N>>W;
for(i=1;i<=N;i++)
{
cin>>Putere[i]>>Cost[i];
if(Putere[i]>=W)
{
if(Cost[i]<sol)
sol=Cost[i];
}
s=s+Putere[i];
sc=sc+Cost[i];
}
if(s<W)
cout<<-1;
if(s==W)
cout<<sc;
if(s>W)
{
for(i=1;i<=N;i++)
for(j=W;j>=Putere[i];j--)
{
if(Val[j]!=0)
{
if(j+Putere[i]>=W)
{
if(Val[j]+Val[Putere[i]]<sol)
sol=Val[j]+Val[Putere[i]];
}
else
{
if(Val[j+Putere[i]]!=0)
Val[j+Putere[i]]=min(Val[j+Putere[i]],Val[j]+Val[Putere[i]]);
else
Val[j+Putere[i]]=Val[j]+Val[Putere[i]];
}
}
}
}
cout<<sol;
return 0;
}