Cod sursa(job #2971947)

Utilizator MorarCezarMorar Cezar MorarCezar Data 28 ianuarie 2023 13:37:02
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <bits/stdc++.h>

using namespace std;

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

int e[1001],c[1001],g,w,dp[5005];

int main()
{
    fin>>g>>w;
    for(int i=1;i<=g;i++)
    {
        fin>>e[i]>>c[i];
    }
    for(int i=1;i<=w;i++)
        dp[i]=INT_MAX;
    int minn=INT_MAX;
    for(int i=1;i<=g;i++)
        for(int j=w;j>=0;j--)
        {
            if(dp[j]==INT_MAX)
                continue;
            if(j+e[i]>=w)
                minn=min(minn,c[i]+dp[j]);
            else
                dp[j+e[i]]=min(dp[j+e[i]],dp[j]+c[i]);
        }
    if(minn==INT_MAX)
        fout<<-1;
    else
        fout<<minn;
    return 0;
}