Pagini recente » Cod sursa (job #855135) | Cod sursa (job #2775535) | Cod sursa (job #1232657) | Cod sursa (job #183908) | Cod sursa (job #1860761)
#include <fstream>
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
int d[100005];
int min(int a,int b)
{
if(a>b)
return b;
return a;
}
int main()
{
int i,g,w,c,e,j,last=0,mini=2000000000;
in>>g>>w;
for(i=1; i<=w+1; i++)
d[i]=mini;
d[0]=0;
for(i=1; i<=g; ++i)
{
in>>e>>c;
for(j=last; j>=0; --j)
{
if(j+e>w)
{
if(d[w+1]>d[j]+c)
d[w+1]=d[j]+c;
}else
{if(d[j]!=mini)
if(d[j+e]>d[j]+c)
{
d[j+e]=d[j]+c;
}}
}
last=min(w,last+e);
}
if(d[w+1]<d[w]&&d[w+1]!=-1)
out<<d[w+1];
else out<<d[w];
return 0;
}