fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main() {
  5. int n;
  6. double m;
  7. cin >> n >> m;
  8.  
  9. vector<double> tab(n), v(n);
  10. vector<pair<double,double>> bajtek;
  11. for(int i = 0; i < n; i++) {
  12. cin >> tab[i];
  13. }
  14. for(int i = 0; i < n; i++) {
  15. cin >> v[i];
  16. bajtek.push_back({v[i] / tab[i], tab[i]});
  17. }
  18. sort(bajtek.begin(), bajtek.end(), greater<>());
  19.  
  20. double wynik = 0.0;
  21.  
  22. for(int i = 0; i < n && m > 0; i++) {
  23. if(m >= bajtek[i].second) {
  24. m -= bajtek[i].second;
  25. wynik += bajtek[i].second * bajtek[i].first;
  26. } else {
  27. wynik += bajtek[i].first * m;
  28. break;
  29. }
  30. }
  31.  
  32. cout << fixed << setprecision(6) << wynik;
  33. return 0;
  34. }
Success #stdin #stdout 0s 5312KB
stdin
Standard input is empty
stdout
-nan