Cod sursa(job #2471414)

Utilizator matei123Biciusca Matei matei123 Data 10 octombrie 2019 20:54:58
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.6 kb
#include<bits/stdc++.h>
using namespace std;
ifstream f("energii.in"); ofstream g("energii.out");
const int NMAX=1000001;
#define FOR(a,b,c) for(int a = b; a <= c; ++a)
int G, cost, pd[10001], enrg, W;
int main()
{   f >> G >> W;
    FOR(i,1,W) pd[i] = NMAX;
    FOR(i,1,G)
    {   f >> enrg >> cost;
        for(int j = W; j >= 0; --j)
        {   if(pd[j] != NMAX && enrg + j <= W)
                pd[j + enrg] = min(pd[j + enrg], pd[j] + cost);
            if(enrg + j > W) pd[W] = min(pd[W], pd[j] + cost);
        }
	}
    if(pd[W] == NMAX) g << -1;
    else g << pd[W];
    return 0;

}