Cod sursa(job #1736141)

Utilizator Burbon13Burbon13 Burbon13 Data 1 august 2016 12:08:27
Problema Energii Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <cstdio>
#include <iostream>

using namespace std;

const int nmx = 1002;
const int smx = 10002;
const int inf = 0x3f3f3f3f;

int generators,min_watts;
int energy[nmx],cost[nmx];
int dp[smx];

void input()
{
    scanf("%d", &generators);
    scanf("%d", &min_watts);
    for(int i = 1; i <= generators; ++i)
        scanf("%d %d", &energy[i], &cost[i]);
}

void set_dp()
{
    for(int i = 0; i < smx; ++i)
        dp[i] = inf;
}

void dynamic()
{
    dp[0] = 0;

    for(int i = 1; i <= generators; ++i)
        for(int j = smx - 1; j >= energy[i]; --j)
            dp[j] = min(dp[j],dp[j-energy[i]] + cost[i]);
}

void output()
{
    int minim = inf;

    for(int j = min_watts; j < smx - 1; ++j)
        minim = min(minim,dp[j]);

    printf("%d\n", minim);
}

int main()
{
    freopen("energii.in", "r", stdin);
    freopen("energii.out", "w", stdout);
    input();
    set_dp();
    dynamic();
    output();
    return 0;
}