Cod sursa(job #1143570)

Utilizator felixiPuscasu Felix felixi Data 15 martie 2014 18:11:26
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <fstream>

using namespace std;

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

const int NMAX= 5000;

int v[NMAX+1], G, N, c,k;

int main()
{
    in >> N >> G;

    v[0]= 0;

    for( int j= 1; j<=G; j++ ) {
        v[j]= -1;
    }

    for( int i= 1; i<=N; i++ ) {
        in >> c >> k;
        for( int j= G; j>=0; j-- ) {
            if( v[j] != -1 ) {
                if( j+c <= G ) {
                    if( v[ j+c ] == -1 || v[ j+c ] > k+v[j] ) {
                        v[ j+c ]= k+v[j];
                    }
                }
                else if( v[G] > k+v[j] || v[G] == -1 ) {
                    v[G]= k+v[j];
                }
            }
        }
    }

    out << v[G];

    return 0;
}