Cod sursa(job #2087756)

Utilizator TheNextGenerationAyy LMAO TheNextGeneration Data 14 decembrie 2017 10:04:19
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <bits/stdc++.h>

using namespace std;

int dp[2][5005];
int p[1005],cost[1005];
const int INF = 1<<30;
ifstream in("energii.in");
ofstream out("energii.out");

int main ()
{
    int n,g,l=0;
    in >> n >> g;
    for (int i = 1; i<=n; i++)
        in >> p[i] >> cost[i];
    for (int i = 1; i<=g; i++)
        dp[1][i] = dp[0][i] = INF;
    for (int i = 1; i<=n; i++, l = 1-l)
    {
        for (int j = 1; j<=g; j++)
        {
            dp[l][j] = dp[1-l][j];
            if (j<=p[i])
                dp[l][j] = min(dp[l][j],cost[i]);
            else
                dp[l][j] = min(dp[l][j],dp[1-l][j-p[i]]+cost[i]);
        }
    }
    dp[1-l][g]<INF ? out << dp[1-l][g] : out << "-1";
}