Cod sursa(job #2772661)

Utilizator MihaiIonescuIonescu Andrei Mihai MihaiIonescu Data 2 septembrie 2021 10:08:11
Problema Energii Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <fstream>
using namespace std;
ifstream cin("energii.in");
ofstream cout("energii.out");
int n, G, w[5001], p[5001], i, f[1000000], j, maxx;
int main () {
    cin>>n>>G;
    for (i = 1;i <= n;i++) {
        cin>>p[i]>>w[i];
    }
    for (i = 1;i <= n;i++) {
        for (j = maxx;j >= 1;j--)
            if (f[j] != 0) {
                if (f[j] + p[i] > f[j + w[i]]) {
                    f[j + w[i]] = f[j] + p[i];
                    if (j + w[i] > maxx)
                        maxx = j + w[i];
                }
            }
        if (p[i] > f[w[i]]) {
            f[w[i]] = p[i];
        }
        if (w[i] > maxx)
            maxx = w[i];
    }
    for (i = 1;i <= maxx;i++)
        if (f[i] >= G) {
            cout<<i;
            return 0;
        }
}