Cod sursa(job #1853223)

Utilizator victoreVictor Popa victore Data 21 ianuarie 2017 15:21:14
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <cstdio>
using namespace std;

int g[5005],p[5005],prof[10005];
int main()
{
    freopen("energii.in","r",stdin);
    freopen("energii.out","w",stdout);
    int k,n,i,j,max=-1;
    scanf("%d",&n);
    scanf("%d",&k);
    for(i=1;i<=n;i++)
        scanf("%d%d",&g[i],&p[i]);
    for(j=1;j<=k;j++)
        prof[j]=-1;
    prof[0]=0;
    for(i=1;i<=n;i++)
    {
        for(j=k-g[i];j>=0;j--)
        {
            if(prof[j]!=-1&&prof[j]+p[i]>prof[j+g[i]])
            {
                prof[j+g[i]]=prof[j]+p[i];
            }
        }
    }
    for(i=1;i<=k;i++)
    {
        if(max<prof[i])
            max=prof[i];
    }
    printf("%d",max);
}