Cod sursa(job #2812476)

Utilizator Theo14Ancuta Theodor Theo14 Data 4 decembrie 2021 16:24:49
Problema Energii Scor 5
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include<fstream>
#include<climits>
using namespace std;

ifstream f("energii.in");
ofstream g("energii.out");

long long dp[5002];

struct centrala
{
    int energie,cost;
}v[1002];

int main()
{
    long long i,j,gr,w,mini=INT_MAX,sum=0;
    f>>gr>>w;
    for(i=1;i<=gr;i++)
    {
         f>>v[i].energie>>v[i].cost;
         sum+=v[i].energie;
    }
    for(j=1;j<=sum;j++)
        dp[j]=1e18;
    dp[0]=0;
    dp[v[1].energie]=v[1].cost;
    for(i=2;i<=gr;i++)
    {
        for(j=sum-v[i].energie;j>=0;j--)
        {
            dp[j+v[i].energie] = min(dp[j+v[i].energie],dp[j]+v[i].cost);
        }
    }
    for(i=w;i<=sum;i++)
    {
        if(dp[i]<mini)
            mini=dp[i];
    }
    if(mini==INT_MAX)
        g<<-1;
    else
        g<<mini;
    return 0;
}