Cod sursa(job #2981253)

Utilizator andiRTanasescu Andrei-Rares andiR Data 17 februarie 2023 16:30:48
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream fin ("energii.in");
ofstream fout ("energii.out");
const int Gmax=1000, Cmax=10000, Wmax=5000;

int dp[Wmax+1];
int g, w, e, c;
int main()
{
    fin>>g>>w;
    for (int i=0; i<=Wmax; i++)
        dp[i]=Gmax*Cmax+1;
    for (int i=0; i<g; i++){
        fin>>e>>c;
        for (int j=w; j>0; j--){
            if (j>e && dp[j]>dp[j-e]+c)
                dp[j]=dp[j-e]+c;
            else if(j<=e && dp[j]>c)
                dp[j]=c;
        }
    }
    if (dp[w]==Gmax*Cmax+1)
        fout<<"-1";
    else fout<<dp[w];
    return 0;
}