Cod sursa(job #2685220)

Utilizator Turica_Andrei_CosminTurica Andrei Turica_Andrei_Cosmin Data 16 decembrie 2020 12:56:07
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <bits/stdc++.h>



using namespace std;



ifstream f("energii.in");

ofstream g("energii.out");



const int INF = (1 << 28);

int n, energie;

int e[10005], dp[2][10005], cost[10005];



int main()

{



    f >> n >> energie;

    for(int i = 1; i <= n; i++)

        f >> e[i] >> cost[i];



    for(int i = 1; i <= energie; i++)

        dp[0][i] = dp[1][i] = INF;



    for(int i = 1; i <= n; i++)

        for(int j = 1; j <=energie; j++)

            if(j >= e[i])

                dp[i % 2][j] = min(dp[(i - 1) % 2][j], dp[(i - 1) % 2][j - e[i]] + cost[i]);

            else

                dp[i % 2][j] = min(dp[(i - 1) % 2][j] , cost[i]);



    if(dp[n % 2][energie] == INF)

        g << -1 ;

    else

        g << dp[n % 2][energie];

    return 0;

}