Pagini recente » Cod sursa (job #79054) | Cod sursa (job #1392415) | Cod sursa (job #1063227) | Cod sursa (job #1560650) | Cod sursa (job #1860747)
#include <fstream>
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
int d[100005];
int main()
{
int i,g,w,c,e,j,last=0;
in>>g>>w;
for(i=1; i<=w+1; i++)
d[i]=-1;
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]!=-1)
if(d[j+e]<d[j]+c)
{
d[j+e]=d[j]+c;
if(j+e>last)
last=j+e;
}}
}
}
if(d[w+1]<d[w]&&d[w+1]!=-1)
out<<d[w+1];
else out<<d[w];
return 0;
}