Cod sursa(job #2360026)

Utilizator My_Road_To_ONIAndrei Panainte My_Road_To_ONI Data 1 martie 2019 11:47:19
Problema Energii Scor 95
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <bits/stdc++.h>

using namespace std;

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

int const NMAX = 1005;
int const EMAX = 5005;

int n, E;
int c[NMAX], v[NMAX];
int dp[NMAX][EMAX];

void Read()
{
    int i;
    fin >> n >> E;
    for(i = 1; i <= n; i++)
        fin >> v[i] >> c[i];
}

void DP()
{
    int i, j;
    for (i = 0; i <= E; i++)
        dp[1][i] = 1e9;
    for (i = 2; i <= n ; i++)
    {
        for (j = 1; j <= E; j++)
            if (j >= v[i])
                dp[i][j] = min(dp[i - 1][j], dp[i - 1][j - v[i]] + c[i]);
        else dp[i][j] = min(dp[i - 1][j], c[i]);
    }

    if (dp[n][E] == 1000000) fout << "-1";
    else fout << dp[n][E];
}

int main()
{
    Read();
    DP();
    return 0;
}