Cod sursa(job #1370689)

Utilizator TheFFOFratila Florin Ovidiu TheFFO Data 3 martie 2015 16:28:35
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <cstdio>

#define NMAX 1005
#define GMAX 10005

using namespace std;
int n,g,need;
int w[NMAX],p[NMAX];
int dp[GMAX];

void read()
{
    scanf("%d%d",&n,&need);
    g=10000;
    for(int i=1;i<=n;++i)
        scanf("%d%d",&p[i],&w[i]);
}

void knapsack()
{
    for(int i=1;i<=n;++i)
        for(int j=g;j>=g-w[i];--j)
            if(dp[j]<dp[j-w[i]]+p[i])
                dp[j]=dp[j-w[i]]+p[i];
    for(int i=1;i<=10000;++i)
        if(dp[i]>=need)
        {
            printf("%d\n",dp[i]);
            return;
        }
    printf("-1");
}

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