Cod sursa(job #2823021)

Utilizator sandu__1337Dahnovici Sandu sandu__1337 Data 26 decembrie 2021 17:42:24
Problema Energii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <fstream>
using namespace std;

struct generator {
    int eg,cg;
};

ifstream cin("energii.in");
ofstream cout("energii.out");

generator g[1001];int G,w;

int main()
{
    cin>>G>>w;
    for(int i=1;i<=G;i++) cin>>g[i].eg>>g[i].cg;
    int maxx=g[0].cg;for(int i=1;i<=G;i++) {
        if (maxx < g[i].cg) maxx = g[i].cg;
    }
    int dp[100][100];
    int minim=-1;bool gata = false;
    for(int i=1;i<=G && gata==false;i++) {
        for(int j=1;j<=maxx;j++) {
            if(j-g[i].cg < 0) {
                dp[i][j] = dp[i-1][j];
            } else {
                dp[i][j] = max(dp[i-1][j],dp[i-1][j-g[i].cg] + g[i].eg);
                if (dp[i][j] >= w && gata==false) {minim = j;gata=true;}
            }
        }
    }
    cout<<minim;
    return 0;
}