Cod sursa(job #3273071)

Utilizator FlaviuuuFlaviu Flaviuuu Data 1 februarie 2025 09:35:54
Problema Energii Scor 5
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <fstream>
#include <vector>
#include <map>
#include <iomanip>
#include <cmath>
#include <algorithm>
#include <set>
using namespace std;
ifstream cin("energii.in");
ofstream cout("energii.out");
#define ll long long
#define pb(x) push_back(x)
#define all(x) x.begin(), x.end()
int main()
{
    ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
    ll g;
    cin>>g;
    ll w;
    cin>>w;
    ll e, c;
    ll dp[10001];
    for(int i = 1; i <= 10000; i++)
        dp[i] = 1e15;
    dp[0] = 0;
    for(int i = 1; i <= g; i++)
    {
        cin>>e>>c;
        if(e <= w)
        {
            for(int j = w - e; j <= 10000; j++)
                if(dp[j] != 1e15)
                    dp[w] = min(dp[w], dp[j] + c);
        }
        else
        {
            dp[w] = min(dp[w], c);
        }
        for(int j = e; j < w; j++)
            if(dp[j - e] != 1e15)
                dp[j] = min(dp[j], dp[j - e] + c);
    }
    if(dp[w] != 1e15)
        cout<<dp[w];
    else
        cout<<"-1";
    return 0;
}