classMyMatrix { private: int** data; int my_n; public: MyMatrix() { my_n = 100; data = newint* [100]; for (int i = 0; i < 100; i++) { data[i] = newint[100]; } } MyMatrix(int n, int** t) { my_n = n; data = newint* [n]; for (int i = 0; i < n; i++) { data[i] = newint[n]; }
for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { data[i][j] = t[i][j]; } } }
MyMatrix(const MyMatrix& m) { my_n = m.my_n; data = newint* [m.my_n]; for (int i = 0; i < m.my_n; i++) { data[i] = newint[m.my_n]; }
for (int i = 0; i < my_n; i++) { for (int j = 0; j < my_n; j++) { data[i][j] = m.data[i][j]; } }
}
MyMatrix operator*(MyMatrix m) { int** arr = newint* [my_n]; for (int i = 0; i < my_n; i++) { arr[i] = newint[my_n]; }
for (int i = 0; i < my_n; i++) { for (int j = 0; j < my_n; j++) { int num = 0; for (int k = 0; k < my_n; k++) { num += data[i][k] * m.data[k][j]; } arr[i][j] = num; } }
MyMatrix res(my_n, arr);
for (int i = 0; i < my_n; i++) { delete[] arr[i]; } delete[] arr;
return res; }
MyMatrix& operator=(const MyMatrix& m) { if (this == &m) return *this;
for (int i = 0; i < my_n; i++) { delete[] data[i]; } delete[] data;
my_n = m.my_n; data = newint* [my_n]; for (int i = 0; i < my_n; i++) { data[i] = newint[my_n]; for (int j = 0; j < my_n; j++) { data[i][j] = m.data[i][j]; } }
return *this; }
~MyMatrix() { for (int i = 0; i < my_n; i++) { delete[] data[i]; } delete[] data; }
voidprint() { for (int i = 0; i < my_n; i++) { cout << data[i][0]; for (int j = 1; j < my_n; j++) { cout<< " " << data[i][j] ; }
if (i != my_n - 1) cout << endl; } } };
intmain() { int c; int n; cin >> c >> n;
int** arr = newint* [n]; for (int i = 0; i < n; i++) { arr[i] = newint[n]; }
MyMatrix** m = new MyMatrix*[c];
for (int i = 0; i < c; i++) { for (int j = 0; j < n; j++) { for (int k = 0; k < n; k++) { cin >> arr[j][k]; } } m[i] = newMyMatrix(n, arr); }
MyMatrix res = *(m[0]); for (int i = 1; i < c; i++) { res = res * (*m[i]); }
res.print();
for (int i = 0; i < n; i++) { delete[] arr[i]; } delete[] arr;
for (int i = 0; i < c; i++) { delete m[i]; } delete[] m;