Cod sursa(job #1853268)

Utilizator KanghuAndre Popescu Kanghu Data 21 ianuarie 2017 15:46:31
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <iostream>
#include <fstream>

using namespace std;

int V[10010][2];
int D[5010];
int mn = 1000000;
int val = 0;

int main()
{
    ifstream i("energii.in");
    ofstream o("energii.out");

    int G, W;

    i >> G >> W;

    for(int a = 0; a < G; a++)
    {
        i >> V[a][0] >> V[a][1];
    }

    for(int a = 1; a < W; a++)
    {
        D[a] = -1;
    }

    for(int a = 0; a < G; a++)
    {
        for(int b = W; b >= 0; b--)
        {
            if(D[b] != -1 && D[b] + V[a][1] > D[b + V[a][0]])
            {
                D[b + V[a][0]] = D[b] + V[a][1];
                if(D[b + V[a][0]] >= W)
                {
                    if(b + V[a][0] < mn)
                    {
                        val = D[b + V[a][0]];
                        mn = b + V[a][0];
                    }
                }
            }
        }
    }

    o << val;

    return 0;
}