Cod sursa(job #1755991)

Utilizator MateiMCCiurezu Matei MateiMC Data 11 septembrie 2016 16:12:47
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("energii.in");
ofstream fout("enrgii.out");
int g,w,eg,cg, optim[15005];
long total_eng=0;

int main()
{
    fin>>g>>w;

    for(int i=1; i<=w+10001; i++){
        optim[i]=25002500;
    }

    for(int i=1; i<=g; i++){
        fin>>eg>>cg;
        total_eng+=eg;

        for(int j=w+eg; j>=eg; j--){
            optim[j]=min(optim[j], optim[j-eg]+cg);
            if(j>w){
                optim[w]=min(optim[w],optim[j]);
            }
        }
    }

    if(total_eng>=w){
        fout<<optim[w];
    }
    else{
        fout<<-1;
    }

    return 0;
}