Pagini recente » Cod sursa (job #997874) | Cod sursa (job #3227417) | Cod sursa (job #2843644) | Cod sursa (job #1272282) | Cod sursa (job #2046061)
#include <iostream>
#include <algorithm>
using namespace std;
struct obiect {int G, V; double P;} v[1001];
int n, GMax, i;
float C=0;
void citire() {
cin>>n>>GMax;
for(i = 1; i <= n; ++i) {
cin>>v[i].G>>v[i].V;
v[i].P=(v[i].V)/v[i].G;
}
}
bool comp(obiect a, obiect b) {
return a.P > b.P;
}
void castig() {
for(i = 1; i <= n && GMax>0; ++i) {
if(v[i].G<=GMax) {
C+=v[i].V;
GMax-=v[i].G;
} else {
C+=v[i].P*GMax;
GMax=0;
}
}
}
int main()
{
citire();
sort(v+1, v+n+1, comp);
castig();
cout<<C;
return 0;
}