#include <iostream>
#include <numeric>
#include <algorithm>
#include <iterator>
int main() {
const size_t size = 5;
double arr[size] = { 5.0, 4.0, 3.0, 2.0, 1.0 };
std::cout << "Array: ";
std::copy(arr, arr + size, std::ostream_iterator<double>(std::cout, " "));
std::cout << std::endl;
std::cout << "Sum: " << std::accumulate(arr, arr + size, 0.0) << std::endl;
std::cout << "Reverse array: ";
std::reverse_copy(arr, arr + size, std::ostream_iterator<double>(std::cout, " "));
std:cout << std::endl;
return 0;
}