struct ob {int g,c; float ef;}; ob v[10],aux; int n,i,j; float G;
void main() {cin>>n; for(i=1;i<=n;i++) {cin>>v[i].g; cin>>v[i].c; v[i].ef=v[i].c/v[i].g;}
for(i=1;i<=n;i++) for(j=i+1;j<=n;j++) if(v[i].ef<v[j].ef) {aux=v[i]; v[i]=v[j]; v[j]=aux;}
cout<<"dati greutati rucsacului"; cin>>G; int castig=0; i=1; while(i<=n && G>0) {if(G>v[i].g) {G=G-v[i].g; castig=castig+v[i].c; cout<<"am bagat obiectul"<<i<<endl; } else {castig=castig+v[i].c*(G/v[i].g); G=0;} i++;} cout<<castig;}