using System;
class MatrixMultiplication
{
static void Main()
{
int[,] A = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
int[,] B = {
{9, 8, 7},
{6, 5, 4},
{3, 2, 1}
};
int[,] C = new int[3, 3];
// Multiply matrices A × B and store in C
for (int i = 0; i < 3; i++) // O(n)
{
for (int j = 0; j < 3; j++) // O(n)
{
C[i, j] = 0;
for (int k = 0; k < 3; k++) // O(n)
{
C[i, j] += A[i, k] * B[k, j];
}
}
}
// Print result
Console.WriteLine("Result of A × B:");
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
Console.Write(C[i, j] + "\t");
}
Console.WriteLine();
}
}
}
dXNpbmcgU3lzdGVtOwoKY2xhc3MgTWF0cml4TXVsdGlwbGljYXRpb24KewogICAgc3RhdGljIHZvaWQgTWFpbigpCiAgICB7CiAgICAgICAgaW50WyxdIEEgPSB7CiAgICAgICAgICAgIHsxLCAyLCAzfSwKICAgICAgICAgICAgezQsIDUsIDZ9LAogICAgICAgICAgICB7NywgOCwgOX0KICAgICAgICB9OwoKICAgICAgICBpbnRbLF0gQiA9IHsKICAgICAgICAgICAgezksIDgsIDd9LAogICAgICAgICAgICB7NiwgNSwgNH0sCiAgICAgICAgICAgIHszLCAyLCAxfQogICAgICAgIH07CgogICAgICAgIGludFssXSBDID0gbmV3IGludFszLCAzXTsKCiAgICAgICAgLy8gTXVsdGlwbHkgbWF0cmljZXMgQSDDlyBCIGFuZCBzdG9yZSBpbiBDCiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAzOyBpKyspICAgICAgICAgLy8gTyhuKQogICAgICAgIHsKICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCAzOyBqKyspICAgICAvLyBPKG4pCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIENbaSwgal0gPSAwOwogICAgICAgICAgICAgICAgZm9yIChpbnQgayA9IDA7IGsgPCAzOyBrKyspIC8vIE8obikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBDW2ksIGpdICs9IEFbaSwga10gKiBCW2ssIGpdOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyBQcmludCByZXN1bHQKICAgICAgICBDb25zb2xlLldyaXRlTGluZSgiUmVzdWx0IG9mIEEgw5cgQjoiKTsKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDM7IGkrKykKICAgICAgICB7CiAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgMzsgaisrKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBDb25zb2xlLldyaXRlKENbaSwgal0gKyAiXHQiKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZSgpOwogICAgICAgIH0KICAgIH0KfQo=