Cod sursa(job #2799386)

Utilizator OffuruAndrei Rozmarin Offuru Data 13 noiembrie 2021 09:53:03
Problema Energii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <bits/stdc++.h>
#define inf 100000000

using namespace std;

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


int dp[5005],G,W;
struct generator
{
    int energie=0,cost=0;
}a[1005];

void read()
{
    fin>>G>>W;

    for(int i=1;i<=G;i++)
        fin>>a[i].energie>>a[i].cost;
}

void best()
{
    for(int i=1;i<=5000;i++)
        dp[i]=inf;

    for(int i=1;i<=G;i++)
        for(int j=W;j>=1;j--)
            if(a[i].energie>=j)
                dp[j]=min(dp[j],a[i].cost);
            else
                dp[j]=min(dp[j],a[i].cost+dp[j-a[i].energie]);

    if(dp[W]==inf)
        fout<<-1;
    else
        fout<<dp[W];
}

int main()
{
    read();
    best();
    return 0;
}