Cod sursa(job #1474364)

Utilizator aokirisakiLisca Ana aokirisaki Data 21 august 2015 20:31:21
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <cstdio>
#include <iostream>

using namespace std;

int d[5001];

int main()
{
    freopen("energii.in","r",stdin);
    freopen("energii.out","w",stdout);

   int G,W,e,c,smax,i,j;

   scanf("%d%d",&G,&W);

   for(i=1;i<=W;i++)
   d[i]=-1;

   smax=0;

   for(i=1;i<=G;i++)
   {
       scanf("%d%d",&c,&e);
       for(j=smax;j>=0;j--)
       if(d[j]!=-1)
       {
           if(d[j+c]<d[j]+e)
           d[j+c]=d[j]+e;

           if(j+c>smax)
           smax=j+c;

       }

   }

int profit=0;

for(i=1;i<=W;i++)
if(d[i]>=W)
{profit=d[i];
break;}

if(profit>=W)
printf("%d",profit);
else printf("-1");
    return 0;
}