Cod sursa(job #1495023)

Utilizator tudortarniceruTudor Tarniceru tudortarniceru Data 2 octombrie 2015 12:44:07
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <fstream>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int n, g, da;
int w[5005], p[5005];
int c[10005];
int maxx;
int main() {
    maxx = 10000000;
    fin >> n >> g;
    for (int i = 1; i <= n; ++i) {
        fin >> w[i] >> p[i];
    }
    for (int i = 1; i <= g; ++i) {
        c[i] = maxx + 10;
    }
    c[0] = 0;
    for (int i = 1; i <= n; ++i) {
        for (int j = g; j >= 0; --j) {
            if (j + w[i] >= g) {
                if (c[j] + w[i] < maxx) {
                    maxx = c[j] + p[i];
                    da = 1;
                }
            }
            else {
                if (c[j] + p[i] < c[j + w[i]]) {
                    c[j + w[i]] = c[j] + p[i];
                }
            }
        }
    }
    if (da == 0) {
        fout << "-1";
    }
    else {
        fout << maxx;
    }
    fout.close();
    return 0;
}