Cod sursa(job #1840913)

Utilizator GeoeyMexicanuBadita George GeoeyMexicanu Data 4 ianuarie 2017 23:13:03
Problema Energii Scor 25
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <iostream>
#include <fstream>
#define N 1011
#define W 5011

using namespace std;

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

int const oo=200000000;
int val[N],i,j,n,m,G,k,a[N][W],cost[W];

int main()
{
    f>>n>>G;
    for(i=1;i<=n;i++)
        f>>val[i]>>cost[i];
    for(i=1;i<=n;i++)
    for(j=1;j<=G;j++)
    a[i][j]=oo;
    for(i=1;i<=val[1];i++)
        a[1][i]=cost[i];
    for(i=2;i<=n;i++)
    {
        for(j=1;j<=G;j++)
        {
            a[i][j]=a[i-1][j];
            if(val[i]<G || val[i]<j)
                a[i][j]=min(a[i-1][j],a[i-1][j-val[i]]+cost[i]);
            else
                a[i][j]=min(a[i-1][j],cost[i]);
        }
    }
    if(a[n][G]==oo)
        g<<-1;
    else
        g<<a[n][G];
}