Cod sursa(job #212486)

Utilizator taloibogdanTaloi Bogdan Cristian taloibogdan Data 5 octombrie 2008 17:37:43
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.5 kb
#include<stdio.h>
long inf=1000000000,n,m,i,e[1016],c[1016],r[5016],j;
int main()
{
 freopen("energii.in","r",stdin);
 freopen("energii.out","w",stdout);
 scanf("%ld%ld",&n,&m);
 for(i=1;i<=n;++i)
    scanf("%ld%ld",&e[i],&c[i]);
 for(i=1;i<=m;++i)r[i]=inf;
 r[0]=0;
 for(i=1;i<=n;++i)
 for(j=m-1;j>=0;--j)
 if(r[j]!=inf)
 {
  if(j+e[i]>=m&&r[j]+c[i]<r[m])r[m]=r[j]+c[i];
  else if(j+e[i]<m&&r[j]+c[i]<r[j+e[i]])r[j+e[i]]=r[j]+c[i];
 }
 if(r[m]==inf)r[m]=-1;
 printf("%ld\n",r[m]);
 return 0;
}