Cod sursa(job #2410633)

Utilizator CharacterMeCharacter Me CharacterMe Data 20 aprilie 2019 11:08:28
Problema Energii Scor 45
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#define Inf 10000001
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int N, W, i, j, Sol[Inf], Sum, Out=Inf;
struct Gen{
    int energy;
    int cost;
};
Gen List[1001];
int main()
{
    fin>>N>>W;
    for(i=1; i<=N; ++i) {fin>>List[i].energy>>List[i].cost; Sum+=List[i].energy;}
    if(Sum<W){fout<<"-1"; return 0;}
    for(i=1; i<=Sum; ++i) Sol[i]=Inf;
    for(i=1; i<=N; ++i)
        for(j=Sum-List[i].energy; j>=0; --j)
            Sol[j+List[i].energy]=min(Sol[j+List[i].energy], Sol[j]+List[i].cost);
    for(i=W; i<=Sum; ++i) Out=min(Out, Sol[i]);
    fout<<Out;
    return 0;
}