Cod sursa(job #3320295)

Utilizator ceezarGrecu Cezar Gabriel ceezar Data 4 noiembrie 2025 20:23:32
Problema Energii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 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];
long long dp[2][1000005];

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

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

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

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

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


    }

    long long costmin=2e11;
    for(int i=W;i<=s;++i)
        costmin=min(costmin,dp[1-lin][i]);
    fout<<costmin;




}