Cod sursa(job #2203451)

Utilizator stefanchistefan chiper stefanchi Data 12 mai 2018 13:10:02
Problema Energii Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <cstdio>
#include <algorithm>
using namespace std;
const int NMAX = 5005;
int vec[NMAX];

void rezolvare()
{
    int n , w ,e ,c;
    scanf("%d %d",&n,&w);
    for(int i = 1 ; i<= w ; i++)
        vec[i] = NMAX;
    for(int i = 1 ; i <=n ; i ++)
    {
        scanf("%d %d",&e,&c);
        for(int j = w ; j >= 0 ; j--)
        {
            if( j + e < w)
            {
                vec[e+j] = min(vec[e+j],c+vec[j]);
            }
            else
                vec[w] = min(vec[w], vec[j] + c);
        }
    }
    if(vec[w] == NMAX)
        printf("-1");
    else
        printf("%d ",vec[w]);
}


int main()
{
    freopen("energii.in","r",stdin);
    freopen("energii.out","w",stdout);
    rezolvare();
    return 0;
}