Cod sursa(job #1141278)

Utilizator felixiPuscasu Felix felixi Data 12 martie 2014 19:20:50
Problema Energii Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>

using namespace std;

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

const int GMAX= 10011001;

int d[GMAX+2], G,W, maxim= 0;

int main()
{
    for( int i=GMAX; i>0; --i ) {
        d[i]= (1<<30);
    }
    int R= (1<<30), p ,c;
    d[0]= 1;
    in >> G >> W;
    for( int i=1; i<=G; i++ ) {
        in >> p >> c;
        for( int j=maxim; j>=0; j-- ) {
            if( d[j] != 0 ) {
                d[ j+c ]= min(d[ j+c ] , d[j] + p );
                maxim= max( maxim, j+c );
            }
        }
    }
    for( int i=maxim; i>=W; --i ) {
        if( d[i] != 0 ) {
            R= min( R , d[i] );
        }
    }
    out << R << '\n';
    return 0;
}