Cod sursa(job #3165065)
Utilizator | Data | 5 noiembrie 2023 13:03:27 | |
---|---|---|---|
Problema | Energii | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.54 kb |
#include <fstream>
#include <climits>
using namespace std;
ifstream fin ("energii.in");
ofstream fout("energii.out");
int n,E,e,c,dp[5005];
int main()
{
fin>>n;
fin>>E;
for(int i=1;i<=5005;i++)
dp[i]=-1;
for(int i=1;i<=n;i++)
{
fin>>e>>c;
for(int j=E-e;j>=0;j--)
if(dp[j]!=-1 && dp[j+e]<dp[j]+c)
dp[j+e]=dp[j]+c;
}
int maxim=-1;
for(int i=1;i<=5005;i++)
if(dp[i]>maxim)
maxim=dp[i];
fout<<maxim;
return 0;
}