Cod sursa(job #80823)

Utilizator alex_mircescuAlex Mircescu alex_mircescu Data 30 august 2007 11:12:21
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include<math.h>
#include<stdio.h>
#include<values.h>

int p1,aux,p2,max,n,wr,a[15002],min,j,i,v[1001][2];

int main()
{
	long maxval = 10000001;
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
scanf("%d%d",&n,&wr);
max=0;
aux=0;
for(i=1;i<=10001;i++)
	a[i]=maxval;
for(i=1;i<=n;i++)
  {
  scanf("%d%d",&p1,&p2);
  v[i][0] = p1;
  v[i][1] = p2;
  }
  
for(i=1;i<=n;i++)
{
	for(j=wr;j>=0;j--)
	{
		if(a[j]!=maxval)
			if(a[j+v[i][0]]>a[j]+v[i][1])
				a[j+v[i][0]]=a[j]+v[i][1];
	}
}
min=maxval;
for(i=wr;i<=wr+10000;i++)
  if(min>a[i] && a[i]!=0)
    min=a[i];
if(min!=maxval) printf("%d\n",min);
else printf("-1\n");
return 0;
}