Cod sursa(job #1882321)

Utilizator vladbatalanBatalan Vlad vladbatalan Data 17 februarie 2017 09:23:26
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<bits/stdc++.h>

using namespace std;

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

int G, w, oo = 1000000, s;
int p[1010], c[1010];
int a[1010][5010];

int main()
{
    fin >> G >> w;
    for(int i=1; i<=G; i++){
        fin >> p[i] >>c[i];
        s+=p[i];
    }
    if(s<w){fout<<-1;return 0;}
    for(int i=0; i<=G; i++)
        for(int j=0; j<=w; j++)
            a[i][j] = oo;
    for(int i=1; i<=G; i++)
    {
        for(int j=0; j<=w; j++)
        {
            if(j<=p[i])
                a[i][j] = min(a[i-1][j], c[i]);
            if(j>p[i])
                a[i][j] = min(a[i-1][j], a[i-1][j-p[i]] + c[i]);
        }
    }
    fout<<a[G][w];

    return 0;
}