Cod sursa(job #2799380)
| Utilizator | Data | 13 noiembrie 2021 09:38:44 | |
|---|---|---|---|
| Problema | Energii | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.6 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
#define MAX=999999999
int n, e[1005], c[1005], w, dp[5005];
int main()
{
fin>>n>>w;
for(int i=1; i<=n; i++)
fin>>e[i]>>c[i];
for(int i=1; i<=n;i++)
dp[i]=MAX;
for(int i=1; i<=n; i++)
for(int j=w; j>0; j--)
if(j<=e[i])
dp[j]=min(dp[j], c[i]);
else
dp[j]=min(dp[j], c[i]+dp[j-e[i]]);
if(dp[w]==MAX)
fout<<-1;
else
fout<<dp[w];
return 0;
}
