Cod sursa(job #87669)

Utilizator horiama1Mania Horia horiama1 Data 28 septembrie 2007 15:25:55
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include<stdio.h>
struct doi{
	long i,j;
};
doi v[1000000],v2[1000000];
int main()
{
	freopen("energii.in","r",stdin);
	freopen("energii.out","w",stdout);
	long g,w,i,j,k,min=9999999;
	scanf("%ld%ld",&g,&w);
	v2[0].i=1;
	for(i=0;i<g;i++)
		scanf("%ld%ld",&v[i].i,&v[i].j);
	for(k=1;k<3;k++)
	for(i=0;i<g;i++)
		for(j=g-1;j>=0;j--)
		      if(v2[j].i==1)
		      {
				v2[j+v[i].i].i=1;
			if(v2[j].j+v[i].j<v2[j+v[i].i].j)
				v2[j+v[i].i].j=v2[j].j+v[i].j;
			if(v2[j+v[i].i].j==0)
				v2[j+v[i].i].j=v2[j].j+v[i].j;
		      }
	for(i=w;i<1000000;i++)
		if(v2[i].i==1)
			if(min>v2[i].j)
				min=v2[i].j;

printf("%ld",min);
return 0;
}