Cod sursa(job #1014004)

Utilizator Athena99Anghel Anca Athena99 Data 21 octombrie 2013 23:06:36
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <fstream>

using namespace std;

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

const int vmax= 15000;
const int inf= 1<<30;

int d[vmax+1];

int main(  ) {
    for ( int i= 1; i<=vmax; ++i ) {
        d[i]= inf;
    }

    int n, k;
    fin>>n>>k;
    int sol= inf;
    for ( int i= 0; i<n; ++i ) {
        int e, c;
        fin>>e>>c;

        for ( int j= vmax-e; j>=0; --j ) {
            if ( d[j+e]>d[j]+c ) {
                d[j+e]= d[j]+c;
            }

            if ( j+e>=k && d[j+e]<sol ) {
                sol= d[j+e];
            }
        }
    }

    if ( sol==inf ) {
        sol= -1;
    }
    fout<<sol<<"\n";

    return 0;
}