Pagini recente » Cod sursa (job #3247543) | Cod sursa (job #1136764) | Cod sursa (job #164578) | Profil IulianOleniuc | Cod sursa (job #2071598)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
int n, GMax;
int c[1001], g[1001];
int CMax[1001], Uz[301][101];
void Citire()
{
in >> n >> GMax;
for(int i=1; i<=n; i++)
in >> g[i] >> c[i];
for(int i=1; i<=GMax; i++) CMax[i]=-1;
}
void Rezolvare()
{
for(int S=1; S<=GMax; S++)
for(int i=1; i<=n; i++)
if(g[i]<=S && CMax[S-g[i]]!=-1 && !Uz[S-g[i]][i])
if(CMax[S]<c[i]+CMax[S-g[i]])
{
CMax[S]=c[i]+CMax[S-g[i]];
for(int k=1; k<=n; k++)
Uz[S][k]=Uz[S-g[i]][k];
Uz[S][i]=1;
}
}
int main()
{
Citire();
Rezolvare();
out << CMax[GMax];
return 0;
}