Cod sursa(job #559627)

Utilizator lau08Laurentiu Capatina lau08 Data 17 martie 2011 22:32:18
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include<stdio.h>
#define GMax 1002
#define WMax 5002
int G,W,C[WMax][3];
int E[GMax],Cost[GMax];


int main()
{int i,j;

FILE *f=fopen("energii.in","r");
FILE *g=fopen("energii.out","w");
fscanf(f,"%d %d",&G,&W);
for(i=1;i<=G;i++)
	fscanf(f,"%d %d",&E[i],&Cost[i]);
fclose(f);

for(i = 0 ;i <= W; i++)
	C[i][1] = 10001;
	
j=1;
while(j<=G)
{
	for(i = 1 ;i <= W; i++)	
			if(i > E[j] && C[i-E[j]][1] + Cost[j] < C[i][1])
				C[i][2] = Cost[j] + C[i-E[j]][1];
			else 
				if(i <= E[j] && Cost[j] < C[i][1])
					C[i][2] = Cost[j];
				else
					C[i][2]=C[i][1];
	for(i=1; i<=W; i++)
		C[i][1] = C[i][2];
	j++;
}
		
if(C[W][1]==10001)
	fprintf(g,"-1\n");
else
fprintf(g,"%d\n",C[W][1]);
fclose(g);
return 0;
}