Pagini recente » Cod sursa (job #228748) | Cod sursa (job #1395718) | Cod sursa (job #1693476) | Cod sursa (job #2417814) | Cod sursa (job #282840)
Cod sursa(job #282840)
#include <fstream.h>
int n,w,e[2005],c[2005];
long min=20000000,s[6000],max;
void cit()
{
int i;
ifstream fin("energii.in");
fin>>n>>w;
for(i=1;i<=n;i++)
fin>>e[i]>>c[i];
fin.close();
}
void sol()
{
long i,j,maxt;
for(i=1;i<=n;i++)
{
maxt=max;
for(j=maxt;j>=1;j--)
if(s[j])
if((s[j+e[i]]==0 || s[j+e[i]]>c[i]+s[j]) && j+e[i]<6000)
{
s[j+e[i]]=c[i]+s[j];
if(j+e[i]>max)
max=j+e[i];
if(j+e[i]>=w && s[j+e[i]]<min)
min=s[j+e[i]];
}
if(e[i]<6000)
{
if(s[e[i]]==0 || s[e[i]]>c[i])
s[e[i]]=c[i];
if(e[i]>max)
max=e[i];
if(e[i]>=w && s[e[i]]<min)
min=s[e[i]];
}
}
}
void afis()
{
ofstream fout("energii.out");
if(max>=w)
fout<<min;
else
fout<<-1;
fout.close();
}
int main()
{
cit();
sol();
afis();
return 0;
}