Cod sursa(job #3320373)

Utilizator ceezarGrecu Cezar Gabriel ceezar Data 5 noiembrie 2025 16:27:59
Problema Energii Scor 95
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <bits/stdc++.h>

using namespace std;

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

///dp[i][j] = costul minim necesar pornirii unor generatoare din primele i care produc energia j

int G,W,e[1005],g[1005];
int dp[1002][12005];

int main()
{
    fin>>G>>W;

    for(int i=1;i<=G;++i)
        for(int j=1;j<=12000;++j)
            dp[i][j]=2e9;

    for(int i=1;i<=G;++i)
        fin>>e[i]>>g[i];

    dp[1][e[1]]=g[1];

    int s=e[1];
    for(int i=2;i<=G;++i)
    {

        s+=e[i];
        for(int j=1;j<=min(s,12000);++j)
        {
            dp[i][j]=dp[i-1][j];
            if(j>=e[i])
            {
                dp[i][j]=min(dp[i][j],dp[i-1][j-e[i]] + g[i]);
            }
        }

    }

    int costmin=2e9;
    for(int i=W;i<=min(s,12000);++i)
        costmin=min(costmin,dp[G][i]);

    fout<<costmin;

}