Cod sursa(job #916668)

Utilizator Pop_EmilPal Tamas Pop_Emil Data 16 martie 2013 19:30:31
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <stdio.h>
#include <algorithm>
using namespace std;

int w[1005],p[1005],g,W,sol=0;
struct mfx
{
  float r;
  int sn;
};
mfx ppw[1005];

bool cmp(mfx a,mfx b)
{
   return (a.r<b.r);
}

void _read()
{
   freopen("energii.in","r",stdin);
   freopen("energii.out","w",stdout);

   scanf("%d %d",&g,&W);

   for(int i=0;i<g;i++)
     scanf("%d %d",&p[i],&w[i]);

}

int main()
{
 _read();
 int i;

 for( i=0;i<g;i++)
   {
       ppw[i].r=(float)p[i]/w[i];
       ppw[i].sn=i;
   }

sort(ppw,ppw+g,cmp);

for(i=g-1;g;g--)
  if(sol<W)sol+=w[ppw[i].sn];
  else break;

printf("%d",sol);
return 0;
}