Cod sursa(job #1124936)

Utilizator hanganflorinHangan Florin hanganflorin Data 26 februarie 2014 14:34:05
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <fstream>
#include <cstring>
#define M 11005
using namespace std;

ifstream is("energii.in");
ofstream os("energii.out");

int c[M];
int n, w, nr, energie, s;

int main()
{
    memset(c, 63, sizeof(c) );
    c[0] = 0;
    is >> n >> w;
    for ( int i = 0; i < n; ++i )
    {
        is >> nr >> energie;
        s += energie;
        for ( int j = M; j >=0; --j )
            if ( c[j]+energie < c[j+nr] )
                c[j+nr] = c[j] + energie;
    }
    if ( s < w )
        os << -1;
    else
    {
        int r = 0x3f3f3f3f;
        for ( int i = w; i < M; ++i )
            if ( c[i] < r )
                r = c[i];
        os << r;
    }

    is.close();
    os.close();
    return 0;
}