Cod sursa(job #79461)

Utilizator vicenzo_cnuStan Alexandru Dan vicenzo_cnu Data 22 august 2007 15:43:09
Problema Energii Scor 65
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include<stdio.h>
int g,w,e[1001],c[1001],i,j,l,s;
long long ct,wt;
double ef[1001],x;
FILE *f,*d;
int main()
{f=fopen("energii.in","r");
d=fopen("energii.out","w");
fscanf(f,"%d %d",&g,&w);
for(i=1;i<=g;i++)
{fscanf(f,"%d %d",&e[i],&c[i]);ct+=c[i];wt+=e[i];
ef[i]=((float)e[i])/((float)c[i]);}
for(i=1;i<=g;i++)
for(j=i+1;j<=g;j++)
if(ef[j]<ef[i])
{l=c[i];c[i]=c[j];c[j]=l;
s=e[i];e[i]=e[j];e[j]=s;x=ef[i];ef[i]=ef[j];ef[j]=x;}
if(wt<w)
fprintf(d,"-1");
else
{for(i=1;i<=g;i++)
if(wt-e[i]>=w)
{ct-=c[i];
wt-=e[i];}
fprintf(d,"%lld\n",ct);}
fclose(f);
fclose(d);
return 0;}