Cod sursa(job #1638106)

Utilizator zertixMaradin Octavian zertix Data 7 martie 2016 21:20:49
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <bits/stdc++.h>
#define inf 0x3f3f3f3f
using namespace std;

int n,g,w[1005],c[1005],dp[5005],s;
void citire()
{
    scanf("%d%d",&n,&g);
    for (int i=1;i<=n;++i)
        scanf("%d%d",&w[i],&c[i]);
}
int main()
{
    freopen("energii.in","r",stdin);
    freopen("energii.out","w",stdout);
    citire();
    for (int i=1;i<=g+1;++i)
        dp[i]=inf;
    for (int i=1;i<=n;++i)
    {
        for (int j=g-w[i];j>=0;--j)
            dp[j+w[i]]=min(dp[j+w[i]],dp[j]+c[i]);
        for (int j=c[i];j>=0;--j)
            dp[j]=min(dp[j],c[i]);
    }
    if (dp[g]==inf)
        printf("-1");
    else printf("%d",dp[g]);

    return 0;
}