Cod sursa(job #52098)

Utilizator crawlerPuni Andrei Paul crawler Data 17 aprilie 2007 19:14:59
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include <stdio.h>
#define Inf  (1<<28)

int v[30002];

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

  int n,s, min = Inf, i,j,a,b;

  scanf("%d%d", &n, &s);

  for(i=1;i<=n;++i)
   {
    scanf("%d%d", &a,&b);

    for(j=10000-a;j>=0;--j)
     if(v[j])
      {
       if(v[j+a] == 0 || v[j+a] <= v[j]+b)
        v[j+a] = v[j] + b;
      }
   }

  for(i=s;i<=30000;++i)
   if(v[i] < min)
    min = v[i];

  if(min != Inf)
   printf("%d", min);
    else
   printf("-1");
  
  return 0;
 }