Pagini recente » Cod sursa (job #2674105) | Cod sursa (job #1419158) | Cod sursa (job #1159663) | Cod sursa (job #818080) | Cod sursa (job #1739626)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
#define NMAX 100000
long long d[5002];
int minn(int a,int b,int c)
{
if(a>=b && a>=c)
return a;
if(b>=a && b>=c)
return b;
if(c>=a && c>=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;
}