Cod sursa(job #220643)

Utilizator SheepBOYFelix Liviu SheepBOY Data 11 noiembrie 2008 21:18:23
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<stdio.h>
int v[1000001];
struct G_C{
int e,c;
};
int g,w;
int sum;
G_C energ[1001];
void reorder()
{
	int i,j;
		for(j=0;j<=sum;j++)
		{
			for(int k=0;k<g;k++)
			{		
				for(i=0;i<g;i++)
				{
					if(i!=k&&energ[i].e!=j&&energ[i].c!=v[j])
					if(v[j])
					if(v[j+energ[i].e]>v[j]+energ[i].c||!v[j+energ[i].e])
						v[j+energ[i].e]=v[j]+energ[i].c;
				}
			}
		}
		for(i=w;;i++)
			if(v[i])
			{
				printf("%d",v[i]);
				break;
			}
		
}
int main()
{
	freopen("energii.in","r",stdin);
	freopen("energii.out","w",stdout);
	scanf("%d%d",&g,&w);	
	int i=0;
	for(i=0;i<g;i++)
	{
		scanf("%d%d",&energ[i].e,&energ[i].c);
		if(sum<energ[i].e)
			sum=energ[i].e;
		if(v[energ[i].e]>energ[i].c||!v[energ[i].e])
			v[energ[i].e]=energ[i].c;


	}
	reorder();
	return 0;
}