Pagini recente » Cod sursa (job #2338660) | Cod sursa (job #2773899) | Cod sursa (job #2469683) | Cod sursa (job #1920368) | Cod sursa (job #1739623)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
#define NMAX 100000
int d[5002];
int minn(int a,int b,int c)
{
if(a>b && a>c)
return a;
if(b>a && b>c)
return b;
return c;
}
int main()
{
int G,W,i,w;
pair<int,int>p[1002];
fin>>G>>W;//Generatoare,energia necesara
for(i=1;i<=G;i++)
fin>>p[i].first>>p[i].second;//energia,costul
for(i=1;i<=G;i++)
for(w=W;w>=1;w--)
if(w>=p[i].first)
{
if(d[w+1]!=0 && d[w+1]<d[w])
d[w]=d[w+1];
if(d[w]<d[w-p[i].first]+p[i].second && d[w-p[i].first]+p[i].second!=0)
d[w]=d[w-p[i].first]+p[i].second;
}
else
{
if(d[w+1]<d[w] && d[w+1]!=0)
d[w]=d[w+1];
}
fout<<d[W];
return 0;
}