Cod sursa(job #1427152)

Utilizator IoanZioan zahiu IoanZ Data 1 mai 2015 16:59:25
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 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 (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;
}