#include <array>
#include <iostream>
template <std::size_t ROW, std::size_t COL>
using Matrix = std::array<std::array<float, COL>, ROW>;
template <std::size_t ROW, std::size_t COL>
Matrix<ROW, COL> div(const Matrix<ROW, COL>& A, const Matrix<ROW, COL>& B)
{
Matrix<ROW, COL> res;
for (std::size_t x = 0; x != ROW; ++x) {
for (std::size_t y = 0; y != COL; ++y) {
res[x][y] = (A[x][y]/B[x][y]);
}
}
return res;
}
template <std::size_t ROW, std::size_t COL>
void display(const Matrix<ROW, COL>& m)
{
for (std::size_t x = 0; x != ROW; ++x) {
for (std::size_t y = 0; y != COL; ++y) {
std::cout << m[x][y] << " ";
}
std::cout << std::endl;
}
}
int main()
{
Matrix<20, 5> N;
for (std::size_t x = 0; x != 20; ++x) {
for (std::size_t y = 0; y != 5; ++y) {
N[x][y] = 1;
}
}
N = div(N, N);
std::cout << "Displaying N ..." << std::endl;
display(N);
}
I2luY2x1ZGUgPGFycmF5PgojaW5jbHVkZSA8aW9zdHJlYW0+Cgp0ZW1wbGF0ZSA8c3RkOjpzaXplX3QgUk9XLCBzdGQ6OnNpemVfdCBDT0w+CnVzaW5nIE1hdHJpeCA9IHN0ZDo6YXJyYXk8c3RkOjphcnJheTxmbG9hdCwgQ09MPiwgUk9XPjsKCnRlbXBsYXRlIDxzdGQ6OnNpemVfdCBST1csIHN0ZDo6c2l6ZV90IENPTD4KTWF0cml4PFJPVywgQ09MPiBkaXYoY29uc3QgTWF0cml4PFJPVywgQ09MPiYgQSwgY29uc3QgTWF0cml4PFJPVywgQ09MPiYgQikKewogICAgTWF0cml4PFJPVywgQ09MPiByZXM7CiAgICBmb3IgKHN0ZDo6c2l6ZV90IHggPSAwOyB4ICE9IFJPVzsgKyt4KSB7CiAgICAgICBmb3IgKHN0ZDo6c2l6ZV90IHkgPSAwOyB5ICE9IENPTDsgKyt5KSB7CiAgICAgICAgICAgcmVzW3hdW3ldID0gKEFbeF1beV0vQlt4XVt5XSk7CiAgICAgICB9CiAgICB9CiAgICByZXR1cm4gcmVzOwp9IAoKdGVtcGxhdGUgPHN0ZDo6c2l6ZV90IFJPVywgc3RkOjpzaXplX3QgQ09MPgp2b2lkIGRpc3BsYXkoY29uc3QgTWF0cml4PFJPVywgQ09MPiYgbSkKewogICAgZm9yIChzdGQ6OnNpemVfdCB4ID0gMDsgeCAhPSBST1c7ICsreCkgewogICAgICAgZm9yIChzdGQ6OnNpemVfdCB5ID0gMDsgeSAhPSBDT0w7ICsreSkgewogICAgICAgICAgIHN0ZDo6Y291dCA8PCBtW3hdW3ldIDw8ICIgIjsKICAgICAgIH0KICAgICAgIHN0ZDo6Y291dCA8PCBzdGQ6OmVuZGw7CiAgICB9Cn0KCmludCBtYWluKCkKewogICAgTWF0cml4PDIwLCA1PiBOOwogICAgZm9yIChzdGQ6OnNpemVfdCB4ID0gMDsgeCAhPSAyMDsgKyt4KSB7CiAgICAgICAgZm9yIChzdGQ6OnNpemVfdCB5ID0gMDsgeSAhPSA1OyArK3kpIHsKICAgICAgICAgICAgTlt4XVt5XSA9IDE7CiAgICAgICAgfQogICAgfQogICAgTiA9IGRpdihOLCBOKTsKICAgIHN0ZDo6Y291dCA8PCAiRGlzcGxheWluZyAgTiAgLi4uIiA8PCBzdGQ6OmVuZGw7CiAgICBkaXNwbGF5KE4pOwp9