Cod sursa(job #3348903)

Utilizator RazvanVelcuVelcu Razvan RazvanVelcu Data 24 martie 2026 16:53:58
Problema Energii Scor 35
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <bits/stdc++.h>
using namespace std;

#define int long long

struct Energie {
    int nr, cost;
};

Energie v[100001];
int dp[100001];

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

    int n, k;
    cin >> n >> k;

    for (int i = 1; i <= n; i++)
        cin >> v[i].nr >> v[i].cost;

    int maxSum = 100000;

    for (int i = 0; i <= maxSum; i++)
        dp[i] = LLONG_MAX;

    dp[0] = 0;

    for (int i = 1; i <= n; i++)
    {
        for (int j = maxSum - v[i].nr; j >= 0; j--)
        {
            if (dp[j] != LLONG_MAX)
                dp[j + v[i].nr] = min(dp[j + v[i].nr], dp[j] + v[i].cost);
        }
    }

    int minim = LLONG_MAX;

    for (int i = k; i <= maxSum; i++)
        minim = min(minim, dp[i]);

    if (minim == LLONG_MAX)
        cout << -1;
    else
        cout << minim;

    return 0;
}