Cod sursa(job #1206750)

Utilizator eu3neuomManghiuc Teodor-Florin eu3neuom Data 11 iulie 2014 02:00:04
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream f("energii.in");
ofstream g("energii.out");

int v[5002];

int main()
{
    int G,W,EG,CG;
    f >> G >> W;
    for(int i = 1; i <= G; i++){
        f >> EG >> CG;
        if(EG >= W){
            if(CG < v[W])
                v[W] = CG;
            if(0 == v[W])
                v[W] = CG;
        } else {
            for(int j = W;j >= 1; j--)
                if(v[j] != 0){
                    if(j + EG > W){
                        if(v[j] + CG < W)
                            v[W] = v[j] + CG;
                    } else {
                        if(v[j + EG] < j + CG)
                            v[j + EG] = v[j] + CG;
                    }
                }
            if(v[EG] == 0)
                v[EG] = CG;
            if(v[EG] > CG)
                v[EG] = CG;
        }
    }
    if(v[W] != 0)
        g << v[W];
    else
        g << -1;
    return 0;
}