Cod sursa(job #1747370)

Utilizator Moise_AndreiMoise Andrei Moise_Andrei Data 24 august 2016 20:21:23
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
int a[1005], b[1005], v[1005][5005], n, k, i, j;
int main()
{
    in >> n >> k;
    for( i = 1; i <= n; i++)
        in >> a[i] >> b[i];
    for(i = 0 ; i <= n ; ++ i)
        for( j = 1 ; j <= k ; ++ j)
            v[i][j] = 10000000;
    for(i = 1; i <= n; i++)
        for(j = 1; j <= k; j++){
            v[i][j] = v[i - 1][j];
                if(j >= a[i])
                    v[i][j] = min(v[i][j], v[i-1][j - a[i]] + b[i]);
                else if(j <= a[i])
                    v[i][j] = min(v[i][j], b[i]);
            }
    if(v[n][k] == 10000000)
        out << "-1";
    else
        out << v[n][k];
    return 0;
}