Cod sursa(job #3319977)

Utilizator ceezarGrecu Cezar Gabriel ceezar Data 3 noiembrie 2025 22:39:31
Problema Energii Scor 0
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];
long long dp[1005][100005];

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

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

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

    dp[1][e[1]]=g[1];
    long long s=e[1];
    for(int i=2;i<=G;++i)
    {
        s+=e[i];
        for(int j=0;j<=s;++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]);
            }
        }
    }

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




}