Cod sursa(job #1842173)

Utilizator UrsuDanUrsu Dan UrsuDan Data 6 ianuarie 2017 16:56:55
Problema Energii Scor 45
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <iostream>
#include <cstdio>
#define inf 50000050

using namespace std;

struct energii{int e,c;};
energii v[1005];
int eng[1000050];

int main()
{
    freopen("energii.in","r",stdin);
    freopen("energii.out","w",stdout);
    int n,m,i,j,cmax=0;
    scanf("%d%d",&n,&m);
    for(i=1;i<=n;i++)
    {
        scanf("%d%d",&v[i].e,&v[i].c);
        cmax+=v[i].c;
    }
    for(i=1;i<=n;i++)
        for(j=cmax;j>=v[i].c;j--)
            eng[j]=max(eng[j],eng[j-v[i].c]+v[i].e);
    for(i=0;i<=cmax;i++)
        if(eng[i]>=m)
        {
            printf("%d",i);
            return 0;
        }
    printf("-1");
    return 0;
}