fork(1) download
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4.  
  5. int main() {
  6. vector<double> a {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
  7. vector<double> b(6, 0);
  8. double need = ((double)a.size()) / b.size();
  9. double have = 0;
  10. size_t pos = 0;
  11. for (size_t i = 0 ; i != a.size() ; i++) {
  12. if (need >= have+1) {
  13. b[pos] += a[i];
  14. have++;
  15. } else {
  16. double frac = (need-have);
  17. b[pos++] += frac * a[i];
  18. have = 1 - frac;
  19. b[pos] += have * a[i];
  20. }
  21. }
  22. for (size_t i = 0 ; i != b.size() ; i++) {
  23. cout << b[i]/need << endl;
  24. }
  25. return 0;
  26. }
Success #stdin #stdout 0s 3460KB
stdin
Standard input is empty
stdout
1.4
3
4.6
6.4
8
9.6