Cod sursa(job #175648)

Utilizator Mishu91Andrei Misarca Mishu91 Data 10 aprilie 2008 11:30:27
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <cstdio>
#define INF 1000000

struct gen{int e,c;} a[1003];

int g,w,sol[5002];

void citire()
{
  scanf("%d %d",&g,&w);
  
  for(int i=0; i<g; i++)
    scanf("%d %d",&a[i].e,&a[i].c);
}

void solve()
{
  for(int i=1; i<=w; i++)
    sol[i] = INF;
    
  for(int i=1; i<=w; i++)
    for(int j=0; j<g; j++)
      if(i>=a[j].e && sol[i] > sol[i-a[j].e] + a[j].c)
        sol[i] = sol[i-a[j].e] + a[j].c;
        
  if(sol[w] < INF)
    printf("%d\n",sol[w]);
  else
    printf("-1\n");
}

int main()
{
  freopen("energii.in","r",stdin);
  freopen("energii.out","w",stdout);
  citire();
  solve();
  return 0;
}