Cod sursa(job #1710316)

Utilizator liviu23Liviu Andrei liviu23 Data 28 mai 2016 19:45:35
Problema Energii Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <stdio.h>
#include <string.h>
#include <iostream>
#define DIM 1005
#define INF 9999999
using namespace std;

int g,w,eg[DIM],cg[DIM],dp[5005];

int main()
{
    freopen("energii.in","r",stdin);
    freopen("energii.out","w",stdout);
    scanf("%d%d",&g,&w);
    for(int i=1;i<=g;i++)
        scanf("%d%d",&eg[i],&cg[i]);
    memset(dp,INF,sizeof(dp));
    for(int i=1;i<=g;i++) {
        for(int j=w;j>eg[i];j--)
            if(dp[j-eg[i]]+cg[i]<dp[j])
                dp[j]=dp[j-eg[i]]+cg[i];
        for(int j=eg[i];j>=1;j--)
            if(cg[i]<dp[j])
                dp[j]=cg[i];
    }
    if(dp[w]==INF)
        printf("-1");
    else
        printf("%d",dp[w]);
    return 0;
}