Cod sursa(job #3256714)

Utilizator Tudor28Ceclan Tudor Tudor28 Data 15 noiembrie 2024 20:36:04
Problema Energii Scor 95
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <iostream>
#include <fstream>
#include <string.h>
#include <vector>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int dp[2][10003];
const int oo = 0x3f3f3f3f;

int main()
{
    int g, w;
    fin >> g >> w;
    memset(dp, oo, sizeof(dp));
    dp[0][0] = 0;
    for (int i = 1; i <= g; i++)
    {
        int eg, cg;
        fin >> eg >> cg;
        for (int j = 10001; j >= 0; j--)
        {
            if (j >= eg)
            {
                dp[i % 2][j] = min(dp[(i + 1) % 2][j], dp[(i + 1) % 2][j - eg] + cg);
            }
            else
            {
                dp[i % 2][j] = dp[(i + 1) % 2][j];
            }
            dp[i % 2][j] = min(dp[i % 2][j], dp[i % 2][j + 1]);
        }
    }

    fout << dp[g % 2][w];

    return 0;
}