#include <iostream>
using namespace std;
int main() {
int arr[3][4] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
int row = sizeof(arr)/sizeof(arr[0]);
int col = sizeof(arr[0])/sizeof(arr[0][0]);
cout << "Original Matrix:" << endl;
for(int i = 0; i < row; i++) {
for(int j = 0; j < col; j++) {
cout << arr[i][j] << " ";
}
cout << endl;
}
cout << "Transposed Matrix:" << endl;
// Switch the loop order: Columns become the outer loop
for(int j = 0; j < col; j++) {
for(int i = 0; i < row; i++) {
// Access by [i][j] but in column-major order
cout << arr[i][j] << " ";
}
cout << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CiAgICBpbnQgYXJyWzNdWzRdID0gewogICAgICAgIHsxLCAyLCAzLCA0fSwKICAgICAgICB7NSwgNiwgNywgOH0sCiAgICAgICAgezksIDEwLCAxMSwgMTJ9CiAgICB9OwoKICAgIGludCByb3cgPSBzaXplb2YoYXJyKS9zaXplb2YoYXJyWzBdKTsKICAgIGludCBjb2wgPSBzaXplb2YoYXJyWzBdKS9zaXplb2YoYXJyWzBdWzBdKTsKCiAgICBjb3V0IDw8ICJPcmlnaW5hbCBNYXRyaXg6IiA8PCBlbmRsOwogICAgZm9yKGludCBpID0gMDsgaSA8IHJvdzsgaSsrKSB7CiAgICAgICAgZm9yKGludCBqID0gMDsgaiA8IGNvbDsgaisrKSB7CiAgICAgICAgICAgIGNvdXQgPDwgYXJyW2ldW2pdIDw8ICIgIjsKICAgICAgICB9CiAgICAgICAgY291dCA8PCBlbmRsOwogICAgfQoKICAgIGNvdXQgPDwgIlRyYW5zcG9zZWQgTWF0cml4OiIgPDwgZW5kbDsKICAgIC8vIFN3aXRjaCB0aGUgbG9vcCBvcmRlcjogQ29sdW1ucyBiZWNvbWUgdGhlIG91dGVyIGxvb3AKICAgIGZvcihpbnQgaiA9IDA7IGogPCBjb2w7IGorKykgewogICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCByb3c7IGkrKykgewogICAgICAgICAgICAvLyBBY2Nlc3MgYnkgW2ldW2pdIGJ1dCBpbiBjb2x1bW4tbWFqb3Igb3JkZXIKICAgICAgICAgICAgY291dCA8PCBhcnJbaV1bal0gPDwgIiAiOwogICAgICAgIH0KICAgICAgICBjb3V0IDw8IGVuZGw7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0=