Cod sursa(job #2205807)

Utilizator IustinPetrariuIustinian Petrariu IustinPetrariu Data 20 mai 2018 12:51:07
Problema Energii Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <iostream>
#include <fstream>
#define NMAX 20005
#define INF 0x3f3f3f
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");

int n,w,dp[NMAX];
int main()
{
    for(int i = 1; i <= NMAX; i++)
        dp[i]=INF;
    fin>>n>>w;
    while(n--)
    {
        int energia,cost;
        fin>>energia>>cost;
        for(int i = w - 1; i >= 0 ; i--)
        {
            dp[i+energia]=min(dp[i+energia], dp[i] +cost); /// ce aveam la pasul anterior plus costul current;

        }
    }
    int minim=NMAX;
    for(int i = w; i <= NMAX; i++)
        if(dp[i] < minim)
        minim=dp[i];
    if(minim!=INF) fout<<minim;
    else fout<<-1;


}