Cod sursa(job #797438)

Utilizator toranagahVlad Badelita toranagah Data 14 octombrie 2012 01:33:52
Problema Energii Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <fstream>
using namespace std;

const int INF = 0x3f3f3f3f;
const int MAX_N = 10010;

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

int best[MAX_N];

int main(int argc, char const *argv[])
{
    for (int i = 1; i < MAX_N; ++i) {
        best[i] = INF;
    }

    int G, W, EG, CG;
    fin >> G;
    fin >> W;
    int min = INF;
    for (int i = 1; i <= G; ++i) {
        fin >> EG >> CG;
        for (int j = MAX_N - 1; j >= EG; --j) {
            if (best[j-EG] + CG < best[j]) {
                best[j] = best[j-EG] + CG;
            }
            if (j > W && best[j] < best[W] && best[j] < min) {
                min = best[j];
            } 
        }
    }
    fout << (best[W] < min ? best[W] : min);
    return 0;
}