Cod sursa(job #2394190)

Utilizator divianegoescuDivia Negoescu divianegoescu Data 1 aprilie 2019 13:18:40
Problema Energii Scor 5
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <fstream>
#define e first
#define c second
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int i,j,W,G,total,maxi,sol,sc,D[10000001];
pair<int,int> v[1001];
int main(){
    fin>>G>>W;
    for(i=1;i<=G;i++){
        fin>>v[i].e>>v[i].c;
        total+=v[i].e;
    }
    maxi=0;
    for(i=1;i<=total;i++)D[i]=-1;
    for(i=1;i<=G;i++)
        for(j=maxi;j>=0;j--){
            sc=j+v[i].e;
            if(D[j]!=-1){
                maxi=max(maxi,sc);
                if(D[sc]==-1)D[sc]=v[i].c;
                else D[sc]=min(D[sc],D[j]+v[i].c);
            }
        }
    for(i=W;i<=total;i++)
        if(D[i]!=-1){
           fout<<D[i];
           return 0;
        }
    fout<<-1;
    return 0;
}