Cod sursa(job #2289681)

Utilizator FrostfireMagirescu Tudor Frostfire Data 24 noiembrie 2018 23:38:57
Problema Energii Scor 5
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <fstream>
#define inf 10001
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
int n,d[1010][5010],w;
bool p;
struct energii
{
    int energie,pret;
}v[1003];
int main()
{
    f >> n >> w;
    for(int i=1; i<=n; i++) f >> v[i].energie >> v[i].pret;
    for(int i=0; i<=1; i++)
        for(int j=0; j<=w; j++) d[i][j] = inf;
    for(int i=1; i<=n; i++)
        for(int j=1; j<=w; j++) {
            if(j-v[i].energie <= 0) d[p][j] = min(d[!p][j],v[i].pret);
              else d[p][j] = min(d[!p][j],d[!p][j-v[i].energie]+v[i].pret);
        }
        p = !p;
    if(d[!p][w]==inf) g << -1 << '\n';
      else g << d[!p][w] << '\n';
    return 0;
}