Cod sursa(job #3273218)

Utilizator DavidDiacDavid Diac DavidDiac Data 1 februarie 2025 11:37:42
Problema Energii Scor 95
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>

using namespace std;

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

int e[10001];
int c[10001];
int dp[1001][5001];
int sum=0;
int n;
int w;
int main()
{
    cin>>n>>w;
    for(int i=1;i<=n;i++)
    {
        cin>>e[i]>>c[i];
        dp[i][0]=0;
    }
    for(int j=1;j<=w;j++)
    {
        dp[0][j]=10000001;
    }
    for(int i=1;i<=n;i++)
    {
        sum+=e[i];
        for(int j=1;j<=w;j++)
        {   
            if(sum<j){dp[i][j]=10000001;}
            else
            {
                if(j>=e[i])
                dp[i][j]=min(dp[i-1][j], dp[i-1][j-e[i]]+c[i]);
                else if(e[i]<j)
                dp[i][j]=dp[i-1][j];
                else dp[i][j]=min(dp[i-1][j], c[i]);
            }
        }
    }
    cout<<dp[n][w];
}