Pagini recente » Cod sursa (job #2031553) | Cod sursa (job #278197) | Cod sursa (job #3211791) | Cod sursa (job #2497981) | Cod sursa (job #2427991)
#include <fstream>
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
struct ura{
int e,c;
};
ura v[1001];
int s[15001];
int main()
{
int g,w,i,energ,cost,max=0,maxx,j,min;
in>>g>>w;
for(i=1;i<=g;i++)
{
in>>energ>>cost;
v[i].e=energ;
v[i].c=cost;
if(v[i].e>max)max=v[i].e;
}
maxx=0;
for(i=1;i<=max+w;i++)
s[i]=2000000000;
for(i=1;i<=g;i++)
{
for(j=maxx;j>=1;j--)
if(s[j]!=0)
if(j+v[i].e<=w+max)
if(s[j]+v[i].c<s[j+v[i].e])
s[j+v[i].e]=s[j]+v[i].c;
if(maxx+v[i].e>w+max)
maxx=w+max;
else
maxx=maxx+v[i].e;
if(v[i].c<s[v[i].e])
s[v[i].e]=v[i].c;
}
min=2000000000;
for(i=w;i<=w+max;i++)
if(s[i]<min&&s[i]!=0)
min=s[i];
if(min!=2000000000)
out<<min;
else
out<<-1;
return 0;
}