Cod sursa(job #1142300)

Utilizator felixiPuscasu Felix felixi Data 13 martie 2014 18:18:07
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <fstream>

using namespace std;

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

const int INF= 2000000000;

int d[5001], gen, w, pn,pp;

int main()
{
    in >> gen >> w;
    for( int i=1; i<=w; i++ ) {
        d[i]= INF;
    }
    for( int i=1; i<=gen; i++ ) {
        in >> pn >> pp;
        for( int j=w; j>=0; j-- ) {
            if( d[j] != INF  ) {
                if( j+pn <= w ) {
                    if( d[ j+pn ] > d[j]+pp) {
                        d[ j+pn ]= d[j]+pp;
                    }
                    else {
                        if( d[w] > d[j]+pp ) {
                            d[w]= d[j]+pp;
                        }
                    }
                }
            }
        }
    }
    if( d[w] == INF ) {
        out << -1;
    }
    else {
        out << d[w];
    }
    out << '\n';
    return 0;
}