#include <cstddef>
#include <iterator>
#include <iostream>
#include <random>
#include <algorithm>
int main()
{
std::size_t constexpr N { 3 };
double a[N][N] {};
double b[N][N] {};
std::cout << "before:\na:\n";
std::copy(&a[0][0], &a[0][0] + N * N, std::ostream_iterator<double>{ std::cout, " " });
std::cout << "\nb:\n";
std::copy(&b[0][0], &b[0][0] + N * N, std::ostream_iterator<double>{ std::cout, " " });
std::random_device rd;
std::generate(&a[0][0], &a[0][0] + N * N, [&]() { return std::uniform_real_distribution<double>{ 0., 100. }(rd); });
std::generate(&b[0][0], &b[0][0] + N * N, [&]() { return std::uniform_real_distribution<double>{ 0., 100. }(rd); });
std::cout << "\n\nafter:\na:\n";
std::copy(&a[0][0], &a[0][0] + N * N, std::ostream_iterator<double>{ std::cout, " " });
std::cout << "\nb:\n";
std::copy(&b[0][0], &b[0][0] + N * N, std::ostream_iterator<double>{ std::cout, " " });
std::cout << "\n\n";
}
I2luY2x1ZGUgPGNzdGRkZWY+CiNpbmNsdWRlIDxpdGVyYXRvcj4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8cmFuZG9tPgojaW5jbHVkZSA8YWxnb3JpdGhtPgoKaW50IG1haW4oKQp7CglzdGQ6OnNpemVfdCBjb25zdGV4cHIgTiB7IDMgfTsKCWRvdWJsZSBhW05dW05dIHt9OwoJZG91YmxlIGJbTl1bTl0ge307CgoJc3RkOjpjb3V0IDw8ICJiZWZvcmU6XG5hOlxuIjsKCXN0ZDo6Y29weSgmYVswXVswXSwgJmFbMF1bMF0gKyBOICogTiwgc3RkOjpvc3RyZWFtX2l0ZXJhdG9yPGRvdWJsZT57IHN0ZDo6Y291dCwgIiAiIH0pOwoJc3RkOjpjb3V0IDw8ICJcbmI6XG4iOwoJc3RkOjpjb3B5KCZiWzBdWzBdLCAmYlswXVswXSArIE4gKiBOLCBzdGQ6Om9zdHJlYW1faXRlcmF0b3I8ZG91YmxlPnsgc3RkOjpjb3V0LCAiICIgfSk7CgoJc3RkOjpyYW5kb21fZGV2aWNlIHJkOwoJc3RkOjpnZW5lcmF0ZSgmYVswXVswXSwgJmFbMF1bMF0gKyBOICogTiwgWyZdKCkgeyByZXR1cm4gc3RkOjp1bmlmb3JtX3JlYWxfZGlzdHJpYnV0aW9uPGRvdWJsZT57IDAuLCAxMDAuIH0ocmQpOyB9KTsKCXN0ZDo6Z2VuZXJhdGUoJmJbMF1bMF0sICZiWzBdWzBdICsgTiAqIE4sIFsmXSgpIHsgcmV0dXJuIHN0ZDo6dW5pZm9ybV9yZWFsX2Rpc3RyaWJ1dGlvbjxkb3VibGU+eyAwLiwgMTAwLiB9KHJkKTsgfSk7CgoJc3RkOjpjb3V0IDw8ICJcblxuYWZ0ZXI6XG5hOlxuIjsKCXN0ZDo6Y29weSgmYVswXVswXSwgJmFbMF1bMF0gKyBOICogTiwgc3RkOjpvc3RyZWFtX2l0ZXJhdG9yPGRvdWJsZT57IHN0ZDo6Y291dCwgIiAiIH0pOwoJc3RkOjpjb3V0IDw8ICJcbmI6XG4iOwoJc3RkOjpjb3B5KCZiWzBdWzBdLCAmYlswXVswXSArIE4gKiBOLCBzdGQ6Om9zdHJlYW1faXRlcmF0b3I8ZG91YmxlPnsgc3RkOjpjb3V0LCAiICIgfSk7CgoJc3RkOjpjb3V0IDw8ICJcblxuIjsKfQo=