Cod sursa(job #2859803)

Utilizator AswVwsACamburu Luca AswVwsA Data 1 martie 2022 22:41:20
Problema Energii Scor 5
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <fstream>
#include <climits>
#define ll long long
using namespace std;
const int NMAX = 1003, VALMAX = 10003;
int e[NMAX], c[NMAX];
int dp[VALMAX];
int main()
{
    ifstream cin("energii.in");
    ofstream cout("energii.out");
    int n, w, i, mx = 0, j;
    cin >> n >> w;
    for (i = 1; i <= n; i++)
    {
        cin >> e[i] >> c[i];
        mx += c[i];
    }
    for (i = 1; i <= mx; i++)
        dp[i] = -1;
    dp[0] = 0;
    for (i = 1; i <= n; i++)
        for (j = 0; j + c[i] <= mx; j++)
            if (dp[j] != -1)
                dp[j + c[i]] = max(dp[j] + e[i], dp[j + c[i]]);
    int poz = 0;
    for (i = 1; i <= mx; i++)
        if (dp[i] >= w)
        {
            cout << i;
            return 0;
        }
    cout << -1;
}