Cod sursa(job #495328)

Utilizator cristian9Cristian Zloteanu cristian9 Data 24 octombrie 2010 19:36:46
Problema Energii Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include<stdio.h>

//int v[10001];

struct vector{ int a, b;};
vector v[10001];

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

    int n, i, k, g, j, w;
    v[0].a=1;
    scanf("%d %d ", &n, &g);

    for(i=1; i<=n; i++){
        scanf("%d %d ", &k, &w);
        for(j=g; j>=0; j--){
            if(v[j].a){
                v[j+k].a=1;
                if(v[j+k].b > v[j].b+w || v[j+k].b==0)
                    v[j+k].b=v[j].b+w;
                }
        }
    }
    int extramin=999999;
    for(i=g; i<=2*g; i++)
        if(v[i].b<extramin && v[i].b)
            extramin=v[i].b;

    if(extramin==999999)
        printf("-1");
    else
        printf("%d ", extramin);

    return 0;
}