Cod sursa(job #2788550)
Utilizator | Data | 25 octombrie 2021 21:51:43 | |
---|---|---|---|
Problema | Energii | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.55 kb |
#include <fstream>
#define nmax 1005
using namespace std;
int e[nmax],c[nmax],dp[5005];
int main()
{
int i,n,m,j;
ifstream f ("energii.in");
ofstream g ("energii.out");
f>>n>>m;
for (i=1;i<=n;i++)
f>>e[i]>>c[i];
for (i=0;i<=5000;i++) dp[i]=10000000;
for (i=1;i<=n;i++)
for (j=m;j>=1;j--)
{
if (j>e[i])
dp[j]=min(dp[j],dp[j-e[i]]+c[i]);
else
dp[j]=min(dp[j],c[i]);
}
if (dp[m]!=10000000) g<<dp[m];
else g<<-1;
}