Cod sursa(job #3366834)

Utilizator IzabelaJePloscaru Maria Izabela IzabelaJe Data 4 octombrie 2026 17:43:27
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>
#include <algorithm>
#define INF (1LL<<30)
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int G,W;
int E[10001],C[10001];
int dp[5001];
int main()
{
    fin>>G>>W;
    for(int i=1;i<=G;i++)
        fin>>E[i]>>C[i];
    for(int i=1;i<=W;i++)
        dp[i]=INF; //dp=costul minim sa obtin suma i(i<W) sau o suma mai mare sau egala cu i(i=W)
    for(int i=1;i<=G;i++)
        for(int j=W-1;j>=0;j--)
            if(dp[j]!=INF){
                int k=E[i]+j;
                if(k>W)
                    k=W;
                dp[k]=min(dp[k],dp[j]+C[i]);
            }
    if(dp[W]==INF)
        fout<<-1;
    else
        fout<<dp[W];
    return 0;
}