Cod sursa(job #1732828)

Utilizator antracodRadu Teodor antracod Data 22 iulie 2016 17:12:51
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <cstdio>
#include <fstream>
#include <algorithm>
#define INF 1000000000
using namespace std;

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

int poz,i,n,g,c[2001],w[2001];
int s[100001];
int main()
{

    in>>n>>g;

    for(i=1; i<=n; ++i)
        in>>w[i]>>c[i];
    int l=0;
    for(int cw=1; cw<=g; ++cw)
        s[cw]=INF;
    for(i=1; i<=n; ++i)
    {
        for(int cw=g-1; cw>=0; --cw)
        {
            if(w[cw]!=INF)
            {
                if(cw+w[i]>=g)
                    poz=g;
                else
                    poz=cw+w[i];

                if(s[poz]>s[cw]+c[i])
                    s[poz]=s[cw]+c[i];
            }

        }
    }
    if(s[g]!=INF)
        out<<s[g];
    else
        out<<-1;
    return 0;
}