Cod sursa(job #52109)

Utilizator crawlerPuni Andrei Paul crawler Data 17 aprilie 2007 19:43:44
Problema Energii Scor 15
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <stdio.h>
#define Inf  123456789

int v[23567];


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<=20000;++i)
   v[i] = Inf;

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

    for(j=20000-a;j>=0;--j)
     if(v[j] < Inf)
      {
       if(v[j+a] >= v[j]+b)
        v[j+a] = v[j] + b;
        
       if(v[j+a] < min && (j+a) >= s)
        min = v[i];
      }
   }

  if(min != Inf)
   printf("%d\n", min);
    else
   printf("-1\n");

  return 0;
 }