Cod sursa(job #2814074)

Utilizator rARES_4Popa Rares rARES_4 Data 7 decembrie 2021 16:08:36
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.17 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f ("energii.in");
ofstream g ("energii.out");
int n,w;
struct{
    int cost,energie;
}v[1001];
int dp[1001][10001];
void citire()
{
    f >> n>> w;
    for(int i = 1;i<=n;i++)
        f >> v[i].energie>> v[i].cost;

}
void initiere()
{

        for(int j = 0;j<=10000;j++)
        {
            dp[0][j] = 1<<30-1;
        }
}

void afisare()
{
    for(int i = 1;i<=n;i++)
    {
        for(int j = 1;j<=w;j++)
        {
            cout << dp[i][j]<< " ";
        }
        cout << endl;
    }

}
void dp1()
{
    for(int i = 1;i<=n;i++)
    {
        int cost_curent = v[i].cost;
        int energie = v[i].energie;
        for(int j = 1;j<=10000;j++)
            {
                if(j<=energie)
                {
                    dp[i][j] = min(dp[i-1][j],cost_curent);
                }
                else
                    {
                        dp[i][j] = min(dp[i-1][j],dp[i-1][j-energie]+cost_curent);
                    }

            }
    }
    (dp[n][w] != 1<<30-1)?g<<dp[n][w]:g << -1;
}
int main()
{
    citire();
    initiere();
    dp1();
}