Cod sursa(job #14616)
#include<stdio.h>
#include<stdlib.h>
struct nod{ int e, c; } v[1024];
int n, w;
int cmp(const void *i, const void *j)
{
nod *ei= (nod*)i,
*ej= (nod*)j;
return (ei->c * ej->e)-( ei->e * ej->c);
}
int main()
{
freopen("energii.in","r",stdin);
scanf("%d\n%d",&n,&w);
for(int i=1; i<=n; ++i) scanf("%d %d",&v[i].e, &v[i].c);
qsort( v+1, n, sizeof(nod), cmp);
// for(int i=1; i<=n; ++i) printf("%d %d\n",v[i].e,v[i].c);
int cost=0, i=1;
while(w>0) {
cost+= v[i].c;
w-= v[i].e;
i++;
}
freopen("energii.out","w",stdout);
printf("%d\n",cost);
return 0;
}