Cod sursa(job #220790)

Utilizator SheepBOYFelix Liviu SheepBOY Data 12 noiembrie 2008 20:49:50
Problema Energii Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 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,min=0;
    for(int i=0;i<g;i++)
	for(j=sum;j>=0;j--)
	{
		if(v[j]||!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;
		if(sum<v[j]+energ[i].c)
			sum=v[j]+energ[i].e;
		}
	}
	for(i=w;i<=sum;i++)
		if(v[i])
		{
			min=(!min)?v[i]:min;
			min=(min>v[i])?v[i]:min;
		}

	printf("%d",min);
}
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);

        reorder();
	return 0;
}