Cod sursa(job #11808)

Utilizator oumbraPaul Filimoon oumbra Data 1 februarie 2007 19:53:44
Problema Energii Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <stdio.h>
#include <limits.h>

int main()
{
	FILE *fi, *fo;

	int G, W, Wmax=1;
	int GC[1000], GE[1000], T[5000], TT[5000];

	int i, j, found=1, Cmin;

	fi=fopen("energii.in", "r");
	fo=fopen("energii.out", "w");

	
	fscanf(fi, "%d %d", &G, &W);

	for(i=0; i<G; i++)
	{
		fscanf(fi, "%d %d", &GE[i], &GC[i]);
	}	

	Wmax=0;

	for(i=0; i<G; i++)
	{
		Wmax+=GE[i];

		for(j=0; j<5000; j++)
		{
			TT[j]=0;
		}

		for(j=0; j<Wmax; j++)
		{
			if(j==0)
			{
				TT[GE[i]]=GC[i];
			} else {
				if(T[j]){
					TT[j+GE[i]]=T[j]+GC[i];
				}
			}
		}
		for(j=0; j<5000; j++)
		{
			if((TT[j]<T[j]&&TT[j])||((!T[j])&&TT[j])){
				T[j]=TT[j];
			}
		}

	}	

	/*for(i=W, j=W; i>0, j<=Wmax; i--, j++)
	{
	
	}*/

	Cmin = INT_MAX;
	for(i=W; i<Wmax; i++)
	{
		if(T[i]<Cmin&&T[i]>0)
		{
			Cmin=T[i];
		}	
	}
	
	fprintf(fo, "%d", Cmin);

	return 0;
}