Cod sursa(job #872061)

Utilizator beldeabogdanBogdan Beldea beldeabogdan Data 5 februarie 2013 18:56:30
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <fstream>
#define inf 2000000000
#define minim(a,b) (a<b)?a:b
using namespace std;

ifstream f("energii.in");
ofstream g("energii.out");
int energ,cost;
int n,k,i,j;
int e[5005],trecut;

int main() {
    f >> n >> k;
    for (i=1;i<=5000;i++) e[i] = inf;
    trecut = inf;
    for (i=1;i<=n;i++) {
        f >> energ >> cost;
        for (j = k; j>=1; j--) {
            if (j+energ >= k) trecut = minim(trecut,e[j]+cost);
            else if (e[j] != inf) e[j+energ] = minim(e[j+energ],cost);
        }
        if (energ >= k) trecut = minim(trecut,cost);
        else e[energ] = minim(e[energ],cost);
    }
    if (trecut != inf) g << trecut;
    return 0;
}