Cod sursa(job #1427175)

Utilizator IoanZioan zahiu IoanZ Data 1 mai 2015 17:29:54
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <cstdio>

using namespace std;

int en[10000001];

int main()
{
    freopen("energii.in","r",stdin);
    freopen("energii.out","w",stdout);
    int g,w,i,j,e,c,dr;
    en[0]=0;
    scanf("%d%d",&g,&w);
    for (i=1;i<=10000000;i++)
         en[i]=-1;
    dr=0;
    for (i=1;i<=g;i++){
         scanf("%d%d",&e,&c);
         for (j=dr;j>=0;j--)
             if (j+e>=w)
                if (en[j]!=-1)
                    if (en[j+e]<en[j]+c)
                    {
                        en[j+e]=en[j]+c;
                        if (j+e>dr)
                            dr=j+e;
                    }
    }
    i=w;
    while (i<=10000000 && en[i]==-1)
           i++;
    printf("%d",en[i]);
    return 0;
}