Pagini recente » Cod sursa (job #2050146) | Cod sursa (job #71327) | Cod sursa (job #851098) | Cod sursa (job #1933840) | Cod sursa (job #1346585)
#include <fstream>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int cc,e,c,n,w,a[5001],b[5001];
void rucsac(int a[],int b[])
{
for(int i=1;i<=w;i++)
b[i]=0;
if(e>=w)
{
if(cc>c)
cc=c;
}
else
b[e]=c;
for(int i=1;i<=w;i++)
if(a[i]!=0)
{
if(i+e>=w)
{
if(a[i]+c<cc) cc=a[i]+c;
}
else
if(b[i+e]>a[i]+c || b[i+e]==0)
b[i+e]=a[i]+c;
if(b[i]>a[i] || b[i]==0)
b[i]=a[i];
}
}
int main()
{
fin>>n>>w;
cc=1000002;
for(int i=1;i<=n;i++)
{
fin>>e>>c;
if(i%2==1)
rucsac(b,a);
else
rucsac(a,b);
}
if(cc==1000002)
fout<<-1;
else
fout<<cc<<'\n';
return 0;
}