Cod sursa(job #1754955)

Utilizator xSliveSergiu xSlive Data 9 septembrie 2016 00:53:33
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <iostream>
#include <fstream>
#include <cstring>
#define NMAX 1010
#define INF 50000000
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
int e[NMAX], c[NMAX], a[NMAX][NMAX], n, k, i, j;
int main()
{
    f >> n >> k;
    for( i = 1; i <= n; i++)
        f >> e[i] >> c[i];
    for(i = 0 ; i <= n ; ++ i)
        for( j = 1 ; j <= k ; ++ j)
            a[i][j] = INF;
    for(i = 1; i <= n; i++)
        for(j = 1; j <= k; j++){
            a[i][j] = a[i - 1][j];
                if(j >= e[i])
                    a[i][j] = min(a[i][j], a[i-1][j - e[i]] + c[i]);
                else if(j <= e[i])
                    a[i][j] = min(a[i][j], c[i]);
            }
    if(a[n][k] == INF)
        g << "-1";
    else
        g << a[n][k];
    return 0;
}