Cod sursa(job #106736)

Utilizator alex3el_n2oAlex Vladescu alex3el_n2o Data 18 noiembrie 2007 22:07:28
Problema Energii Scor 45
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <stdio.h>
FILE *f=fopen("energii.in","r"),*gg=fopen("energii.out","w");
int main()
{
int w,aux,e[1005],cg[1005],g,i,p=1;
float s1,s2;
long C=0;
fscanf(f,"%d%d",&g,&w);
for (i=1;i<=g;i++)
	fscanf(f,"%d%d",&e[i],&cg[i]);
while (p)
{
p=0;
for (i=1;i<g;i++)
	{
	s1=float(e[i])/float(cg[i]);
	s2=float(e[i+1])/float(cg[i+1]);
	if (s1<s2)
		{
		p=1;
		aux=e[i];
		e[i]=e[i+1];
		e[i+1]=aux;
		aux=cg[i];
		cg[i]=cg[i+1];
		cg[i+1]=aux;
		}
	}
}
i=1;
while ((w>0)&&(i<=g))
	{
	w-=e[i];
	C+=cg[i];
	i++;
	}
if (w>0)
	fprintf(gg,"-1\n");
else
	fprintf(gg,"%ld\n",C);
fclose(gg);
return 0;
}