Cod sursa(job #3135291)

Utilizator David8406Marian David David8406 Data 2 iunie 2023 16:13:13
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <bits/stdc++.h>
#define mod 666013
using namespace std;
int n,g,w[1005],p[1005],dp[10005];
ifstream fin("energii.in");
ofstream fout("energii.out");
int rucsac(int n, int g){
    for (int i=1;i<=g;i++) dp[i]=999999999;
    for (int i=1;i<=n;i++){
        for (int j=g;j>=w[i];j--){
            dp[j]=min(dp[j],dp[j-w[i]]+p[i]);
        }
    }
    int rez=999999999;
    for (int j=g/2;j<=g;j++)
        rez=min(rez,dp[j]);
    return rez;
}
int main(){
    fin>>n>>g;
    int s=0;
    for (int i=1;i<=n;i++){
        fin>>w[i]>>p[i];
        s+=w[i];
    }
    int rez=999999999;
    if (s<g) fout<<-1;
    else{
        rez=min(rez, rucsac(n,2*g));
        fout<<rez;
    }
}