Cod sursa(job #2395542)

Utilizator vladvaculinVlad V vladvaculin Data 2 aprilie 2019 17:43:50
Problema Energii Scor 5
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
const int nmax = 1001;
const int gmax = 1000001;
int n,w;
int e[nmax], c[nmax];
int d[gmax];
void dp(){
    for(int i = 1; i< gmax; i++)
        d[i] = gmax+2222;

    for(int i = 1; i <= n; i++){

        for(int j = w; j>=0; j--){
            int x = j+e[i];
            if(d[x] > d[j]+ c[i])
                d[x] = d[j]+c[i];
        }

    }
    fout << d[w];
}


int main(){
    fin >> n>>w;
    int sum=0;
    for(int i = 1; i<=n; i++){
        fin >> e[i]>>c[i];
        sum += e[i];
    }
    if(sum < w){
        fout << "-1";
        return 0;
    } else if(sum == w){
        int k=0;
        for(int i = 1; i<=n; i++){
            k+=c[i];
        }
        fout << k;
        return 1;
    }


    dp();

    return 0;
}