Cod sursa(job #1168066)

Utilizator tudormaximTudor Maxim tudormaxim Data 6 aprilie 2014 20:28:08
Problema Energii Scor 55
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;

int main()
{
    freopen("energii.in","r",stdin);
    freopen("energii.out","w",stdout);
    int g,w,eg[1001],ec[1001],i,j,a[5001],b[5001];
    cin>>g>>w;
    for(i=1;i<=g;i++)
        cin>>eg[i]>>ec[i];
    for(i=1;i<=w;i++)
        b[i]=1000000;
    for(i=1;i<=g;i++)
    {
        for(j=1;j<=w;j++)
        {
            if(ec[i]>=j)
                a[j]=min(ec[i],b[j]);
            else
                a[j]=min(b[j],b[j-eg[i]]+ec[i]);
        }
        for(j=1;j<=w;j++)
            b[j]=a[j];
    }
    if(a[w]==1000000)
        cout<<-1;
    else
        cout<<a[w];
    return 0;
}