Cod sursa(job #2823974)

Utilizator 0021592Grecu rares 0021592 Data 30 decembrie 2021 14:01:10
Problema Energii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <fstream>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int v[1003], v1[1003], n, w, dp[1003][2], x, y, f = 10000000000;
int main()
{
    fin >> n >> w;
    for (int i = 0; i < n; i++)
    {
        fin >> v[i] >> v1[i];
    }
    
    for (int i = 0; i < n; i++)
    {
        dp[i][0] = v[i];
        dp[i][1] = v1[i];
        for (int j = 0; j < i; j++)
        {
            x = dp[j][0] + v[i];
            y = dp[j][1] + v1[i];
            if (x < w)
            {
                if (x > dp[i][0])
                {
                    dp[i][0] = x;
                    dp[i][1] = y;
                }
            }
            else
            {
                if (y < dp[i][1])
                {
                    dp[i][0] = x;
                    dp[i][1] = y;
                }
            }
        }
    }
    for (int i = 0; i < n; i++)
    {
        if (dp[i][1] >= w)
        {
            f = min(f, dp[i][1]);
        }
    }
    fout << f;
}