#include <stdio.h>
void array_mul(int (*x)[2], int (*y)[2], int (*ans)[2]) {
int i, j, k;
// 行列積: ans = x * y
for (i = 0; i < 2; i++) {
for (j = 0; j < 2; j++) {
ans[i][j] = 0; // 初期化
for (k = 0; k < 2; k++) {
ans[i][j] += x[i][k] * y[k][j];
}
}
}
// 結果を表示
for (i = 0; i < 2; i++) {
for (j = 0; j < 2; j++) {
}
}
}
int main(void) {
int a[2][2] = {
{1, 2},
{3, 4}
};
int b[2][2] = {
{1, 2},
{3, 4}
};
int ans[2][2];
array_mul(a, b, ans);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp2b2lkIGFycmF5X211bChpbnQgKCp4KVsyXSwgaW50ICgqeSlbMl0sIGludCAoKmFucylbMl0pIHsKCiAgICBpbnQgaSwgaiwgazsKCiAgICAvLyDooYzliJfnqY06IGFucyA9IHggKiB5CiAgICBmb3IgKGkgPSAwOyBpIDwgMjsgaSsrKSB7CiAgICAgICAgZm9yIChqID0gMDsgaiA8IDI7IGorKykgewogICAgICAgICAgICBhbnNbaV1bal0gPSAwOyAgLy8g5Yid5pyf5YyWCiAgICAgICAgICAgIGZvciAoayA9IDA7IGsgPCAyOyBrKyspIHsKICAgICAgICAgICAgICAgIGFuc1tpXVtqXSArPSB4W2ldW2tdICogeVtrXVtqXTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAvLyDntZDmnpzjgpLooajnpLoKICAgIGZvciAoaSA9IDA7IGkgPCAyOyBpKyspIHsKICAgICAgICBmb3IgKGogPSAwOyBqIDwgMjsgaisrKSB7CiAgICAgICAgICAgIHByaW50ZigiJWQgIiwgYW5zW2ldW2pdKTsKICAgICAgICB9CiAgICAgICAgcHJpbnRmKCJcbiIpOwogICAgfQp9CgppbnQgbWFpbih2b2lkKSB7CiAgICBpbnQgYVsyXVsyXSA9IHsKICAgICAgICB7MSwgMn0sCiAgICAgICAgezMsIDR9CiAgICB9OwogICAgaW50IGJbMl1bMl0gPSB7CiAgICAgICAgezEsIDJ9LAogICAgICAgIHszLCA0fQogICAgfTsKICAgIGludCBhbnNbMl1bMl07CgogICAgYXJyYXlfbXVsKGEsIGIsIGFucyk7CiAgICByZXR1cm4gMDsKfQoK