Cod sursa(job #1188965)

Utilizator AndreiBarbutaAndrei Barbuta AndreiBarbuta Data 20 mai 2014 22:14:07
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <cstdio>
#include <algorithm>
#define MAX 100005
#define INF 500000
#define MAXc 1005

using namespace std;

int d[MAX];
struct centrala{
    int c,w;
};centrala v[MAXc];

int main()
{
    freopen("energii.in","r",stdin);
    freopen("energii.out","w",stdout);
    int n,s=0,g;
    scanf("%d%d",&n,&g);
    for(int i=1;i<=n;i++){
        scanf("%d%d",&v[i].c,&v[i].w);
        s+=v[i].w;
    }
    for(int i=1;i<=s;i++)
        d[i]=INF;
    d[0]=0;
    for(int i=1;i<=n;i++)
        for(int j=s;j>=0;j--)
             if(d[j]!=INF and (j+v[i].c)<=g)
                d[j+v[i].c]=min(d[j+v[i].c],(d[j]+v[i].w));
    for(int i=g;i<=s;i++)
        if(d[i]!=INF){
            printf("%d",d[i]);
            return 0;
        }
    printf("-1");
    return 0;
}