Cod sursa(job #4498)
#include <fstream.h>
fstream f("d://energii.in",ios::in),g("d://energii.out",ios::out);
int n,cant,**p;
init()
{
f>>n; f>>cant;
p=new int*[n];
for(int i=0;i<n;i++)
{p[i]=new int[2]; f>>p[i][0]; f>>p[i][1]; }
f.close();}
ordonare()
{int adevarat,aux,aux2;
do{
adevarat=1;
for(int i=0;i<n-1;i++)
if( (float)p[i][0] / p[i][1] < (float)p[i+1][0] / p[i+1][1])
{adevarat=0;
aux=p[i][0]; aux2=p[i][1];
p[i][0]=p[i+1][0]; p[i][1]=p[i+1][1];
p[i+1][0]=aux; p[i+1][1]=aux2;}
} while(adevarat==0);
}
main()
{int cost=0,i=0;
init();
ordonare();
while(cant>0)
{cant-=p[i][0];
cost+=p[i][1]; i++;
}
g<<cost; g.close(); delete p;
}