#include <iostream>
#include <iomanip>
using namespace std;
// 1. Функція для створення (виділення пам'яті) динамічного 2D-масиву
int** createMatrix(int rows, int cols) {
// 1. Виділяємо в динамічній пам'яті (Heap) одновимірний масив вказівників на кожен рядок
int** matrix = new int*[rows];
// 2. У циклі виділяємо пам'ять під масив елементів для кожного окремого рядка
for (int i = 0; i < rows; ++i) {
matrix[i] = new int[cols]; // Виділення cols осередків типу int для i-го рядка
}
// 3. Повертаємо адреси створеної матриці у викликаючий код (наприклад, у main)
return matrix;
}
// 2. Функція для читання (введення) елементів матриці з клавіатури
void readMatrix(int** matrix, int rows, int cols) {
for (int i = 0; i < rows; ++i) {
for (int j = 0; j < cols; ++j) {
cin >> matrix[i][j];
}
}
}
void readVector(int *x,int n){
for (int i=0;i<n;i++){
cin>>x[i];
}
}
// 3. Функція для виведення матриці на екран
void printMatrix(int** matrix, int rows, int cols) {
for (int i = 0; i < rows; ++i) {
for (int j = 0; j < cols; ++j) {
cout << setw(6) << matrix[i][j] << " "; // setw(6) рівномірно вирівнює стовпчики
}
cout << endl; // Перехід на новий рядок після кожного рядка матриці
}
}
int** create(int n,int m){
int **myMatrix2 = new int*[n];
for (int i = 0; i < n; ++i) {
myMatrix2[i] = new int[m];
}
return myMatrix2;
}
int* createA(int n){
int *x=new int[n];
return x;
}
int main() {
int n, m;
cin>>n>>m;
int *v1=createA(n);
int *v2=createA(n);
int **myMatrix=create(n,m);
int **myMatrix2 =create(n,m);
//введення матриці з клавіатури
readMatrix(myMatrix,n,m);
readMatrix(myMatrix2,n,m);
// Вивід на екран
printMatrix(myMatrix,n,n);
printMatrix(myMatrix2,n,n);
// Звільнення пам'яті
for (int i = 0; i < n; ++i) {
delete[] myMatrix[i];
}
delete[] myMatrix;
readVector(v1,n);
readVector(v2,n);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCi8vIDEuINCk0YPQvdC60YbRltGPINC00LvRjyDRgdGC0LLQvtGA0LXQvdC90Y8gKNCy0LjQtNGW0LvQtdC90L3RjyDQv9Cw0Lwn0Y/RgtGWKSDQtNC40L3QsNC80ZbRh9C90L7Qs9C+IDJELdC80LDRgdC40LLRgwppbnQqKiBjcmVhdGVNYXRyaXgoaW50IHJvd3MsIGludCBjb2xzKSB7CiAgICAvLyAxLiDQktC40LTRltC70Y/RlNC80L4g0LIg0LTQuNC90LDQvNGW0YfQvdGW0Lkg0L/QsNC8J9GP0YLRliAoSGVhcCkg0L7QtNC90L7QstC40LzRltGA0L3QuNC5INC80LDRgdC40LIg0LLQutCw0LfRltCy0L3QuNC60ZbQsiDQvdCwINC60L7QttC10L0g0YDRj9C00L7QugogICAgaW50KiogbWF0cml4ID0gbmV3IGludCpbcm93c107CiAgICAKICAgIC8vIDIuINCjINGG0LjQutC70ZYg0LLQuNC00ZbQu9GP0ZTQvNC+INC/0LDQvCfRj9GC0Ywg0L/RltC0INC80LDRgdC40LIg0LXQu9C10LzQtdC90YLRltCyINC00LvRjyDQutC+0LbQvdC+0LPQviDQvtC60YDQtdC80L7Qs9C+INGA0Y/QtNC60LAKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcm93czsgKytpKSB7CiAgICAgICAgbWF0cml4W2ldID0gbmV3IGludFtjb2xzXTsgLy8g0JLQuNC00ZbQu9C10L3QvdGPIGNvbHMg0L7RgdC10YDQtdC00LrRltCyINGC0LjQv9GDIGludCDQtNC70Y8gaS3Qs9C+INGA0Y/QtNC60LAKICAgIH0KCiAgICAvLyAzLiDQn9C+0LLQtdGA0YLQsNGU0LzQviDQsNC00YDQtdGB0Lgg0YHRgtCy0L7RgNC10L3QvtGXINC80LDRgtGA0LjRhtGWINGDINCy0LjQutC70LjQutCw0Y7Rh9C40Lkg0LrQvtC0ICjQvdCw0L/RgNC40LrQu9Cw0LQsINGDIG1haW4pCiAgICByZXR1cm4gbWF0cml4Owp9Ci8vIDIuINCk0YPQvdC60YbRltGPINC00LvRjyDRh9C40YLQsNC90L3RjyAo0LLQstC10LTQtdC90L3Rjykg0LXQu9C10LzQtdC90YLRltCyINC80LDRgtGA0LjRhtGWINC3INC60LvQsNCy0ZbQsNGC0YPRgNC4CnZvaWQgcmVhZE1hdHJpeChpbnQqKiBtYXRyaXgsIGludCByb3dzLCBpbnQgY29scykgewogICBmb3IgKGludCBpID0gMDsgaSA8IHJvd3M7ICsraSkgewogICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgY29sczsgKytqKSB7CiAgICAgICAgICAgIGNpbiA+PiBtYXRyaXhbaV1bal07CiAgICAgICAgfQogICAgfQp9CnZvaWQgcmVhZFZlY3RvcihpbnQgKngsaW50IG4pewoJZm9yICAoaW50IGk9MDtpPG47aSsrKXsKCQljaW4+PnhbaV07Cgl9Cn0KLy8gMy4g0KTRg9C90LrRhtGW0Y8g0LTQu9GPINCy0LjQstC10LTQtdC90L3RjyDQvNCw0YLRgNC40YbRliDQvdCwINC10LrRgNCw0L0Kdm9pZCBwcmludE1hdHJpeChpbnQqKiAgbWF0cml4LCBpbnQgcm93cywgaW50IGNvbHMpIHsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcm93czsgKytpKSB7CiAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBjb2xzOyArK2opIHsKICAgICAgICAgICAgY291dCA8PCBzZXR3KDYpIDw8IG1hdHJpeFtpXVtqXSA8PCAiICI7IC8vIHNldHcoNikg0YDRltCy0L3QvtC80ZbRgNC90L4g0LLQuNGA0ZbQstC90Y7RlCDRgdGC0L7QstC/0YfQuNC60LgKICAgICAgICB9CiAgICAgICAgY291dCA8PCBlbmRsOyAvLyDQn9C10YDQtdGF0ZbQtCDQvdCwINC90L7QstC40Lkg0YDRj9C00L7QuiDQv9GW0YHQu9GPINC60L7QttC90L7Qs9C+INGA0Y/QtNC60LAg0LzQsNGC0YDQuNGG0ZYKICAgIH0KfQoKaW50KiogY3JlYXRlKGludCBuLGludCBtKXsKICAgIGludCAqKm15TWF0cml4MiA9IG5ldyBpbnQqW25dOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpIHsKICAgICAgICBteU1hdHJpeDJbaV0gPSBuZXcgaW50W21dOwogICAgfQogICAgcmV0dXJuIG15TWF0cml4MjsKfQppbnQqIGNyZWF0ZUEoaW50IG4pewoJaW50ICp4PW5ldyBpbnRbbl07CglyZXR1cm4geDsKfQppbnQgbWFpbigpIHsKICAgIGludCBuLCBtOwogICAgY2luPj5uPj5tOwogICAgaW50ICp2MT1jcmVhdGVBKG4pOwogICAgCiAgICBpbnQgKnYyPWNyZWF0ZUEobik7CiAgICAKICBpbnQgKipteU1hdHJpeD1jcmVhdGUobixtKTsKICAgIAogICAgaW50ICoqbXlNYXRyaXgyID1jcmVhdGUobixtKTsKICAgIAogICAgLy/QstCy0LXQtNC10L3QvdGPINC80LDRgtGA0LjRhtGWINC3INC60LvQsNCy0ZbQsNGC0YPRgNC4CglyZWFkTWF0cml4KG15TWF0cml4LG4sbSk7CiAgICByZWFkTWF0cml4KG15TWF0cml4MixuLG0pOwogICAgLy8g0JLQuNCy0ZbQtCDQvdCwINC10LrRgNCw0L0KICAgIHByaW50TWF0cml4KG15TWF0cml4LG4sbik7CiAgICBwcmludE1hdHJpeChteU1hdHJpeDIsbixuKTsKICAgIC8vINCX0LLRltC70YzQvdC10L3QvdGPINC/0LDQvCfRj9GC0ZYKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgKytpKSB7CiAgICAgICAgZGVsZXRlW10gbXlNYXRyaXhbaV07CiAgICB9CiAgICBkZWxldGVbXSBteU1hdHJpeDsKCglyZWFkVmVjdG9yKHYxLG4pOwogICAgcmVhZFZlY3Rvcih2MixuKTsKCiAgICByZXR1cm4gMDsKfQoKCg==