Cod sursa(job #2411658)

Utilizator MariusblockMoga Marius-Ioan Mariusblock Data 21 aprilie 2019 00:09:53
Problema Energii Scor 45
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("energii.in");
ofstream fout("energii.out");

const int inf = 1<<30;

int v[1000006];
int auxv[1000006];
int gc[10005];
int ge[10005];

int main()
{
    int n,m,i,j,sum = 0,minim = inf;
    fin>>n>>m;
    for(i = 1; i <= n; i++){
        fin>>gc[i]>>ge[i];
        sum+=gc[i];
    }
    if(sum < m){
        fout<<"-1"<<endl;
        return 0;
    }
    for(i = 1; i <= sum; i++){
        v[i] = auxv[i] = inf;
    }
    for(i = 1; i <= n; i++){
        for(j = sum; j >= 1; j--){
            if(j < gc[i]){
                v[j] = v[j];
            }else{
                v[j] = min(v[j],v[j-gc[i]] + ge[i]);
            }
        }
    }
    for(i = m; i <= sum; i++){
        minim = min(minim,v[i]);
    }
    fout<<minim<<endl;
    return 0;
}