Cod sursa(job #2268044)

Utilizator petru.ciocirlanPetru Ciocirlan petru.ciocirlan Data 24 octombrie 2018 14:28:02
Problema Energii Scor 5
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <cstdio>
#include <cstdlib>

#define FILE_IN "energii.in"
#define FILE_OUT "energii.out"

const int INF = 0x3f3f3f3f;
const int MAXW = 5001;
int G, W;
int Rucsac[MAXW];

int main()
{
    freopen(FILE_IN, "r", stdin);
    freopen(FILE_OUT, "w", stdout);

    scanf("%i %i", &G, &W);

    /// 0 excluded
    for(int i = 1; i <= W; ++i)
        Rucsac[i] = INF;

    while(G--)
    {
        int EG, CG;
        scanf("%i %i", &EG, &CG);

        for(int i = W - EG; i >= 0; --i)
            if(Rucsac[i + EG] > Rucsac[i] + CG)
                Rucsac[i + EG] = Rucsac[i] + CG;
    }

    if(Rucsac[W] == INF)
        printf("-1\n");
    else
        printf("%i\n", Rucsac[W]);

    return 0;
}