Cod sursa(job #1713853)

Utilizator giotoPopescu Ioan gioto Data 6 iunie 2016 19:40:43
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <cstdio>
#include <algorithm>
#define INF 1000000000
using namespace std;

int poz,i,n,g,c[2001],w[2001];
int s[100001];
int main()
{
    freopen("energii.in", "r", stdin);
    freopen("energii.out", "w", stdout);
    scanf("%d%d", &n, &g);
    for(i=1;i<=n;++i)
        scanf("%d%d", &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)
    printf("%d", s[g]);
    else printf("-1");
    return 0;
}