Cod sursa(job #333786)

Utilizator points_hunterAdrian Dobrescu points_hunter Data 23 iulie 2009 21:00:31
Problema Energii Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.55 kb
#include<stdio.h>

int main(){
  int i,j;
  int W,n,w[1001],c[1001],v[5001];
  freopen("energii.in","r",stdin);
  freopen("energii.out","w",stdout);
  scanf("%d%d",&n,&W);
  memset(v,0x3f3f3f3f,(W+1)*sizeof(int));
  for(i=1;i<=n;i++)
    scanf("%d%d",&w[i],&c[i]);
  v[0]=0;
  for(i=1;i<=n;i++)
    for(j=W-1;j>=0;j--)
      if(j+w[i]<=W){
        if(v[j+w[i]]>v[j]+c[i])
          v[j+w[i]]=v[j]+c[i];
      }
      else
        if(v[W]>v[j]+c[i])
          v[W]=v[j]+c[i];      
  if(v[W]!=0x3f3f3f3f)
    printf("%d",v[W]);
  else
    printf("-1");
  return 0;
}