#include <iostream>
using namespace std;
/*
Declarăm si citim “n”.
Declarăm matricea și vectorul în care vom stoca ultima coloana a matricei.
Cu o structura repetitiva, parcurg “n” pasi:
Cu o alta structura repetitiva, citim elementele matricei:
Cu ajutorul unei structuri decizionale, vom verifica dacă indicele coloanei este egal cu “n”:
In caz afirmativ, folosindu-ne de indicele liniilor,
stocăm în vector, elementul curent.
6. Cu un “for” care ruleaza de la “n + 1” pana la n / 2 + 1 inclusiv:
Cu o structura repetitiva care ruleaza de la “1” pana la “n” inclusiv:
Dacă indicele liniei este mai mare decat “n / 2 + 1”:
mutam elementele liniei anterioare pe linia curentă.
Altfel copiem în linia curentă elementele vectorului, folosindu-ne de indicele coloanei curente.
7. Incrementam pe “n”.
*/
const int MAX_SIZE = 10;
int main() {
int n;
cin >> n;
int mt[MAX_SIZE + 2][MAX_SIZE + 1], v[MAX_SIZE + 1];
for (int i = 1; i <= n; ++i) {
for (int j = 1; j <= n; ++j) {
cin >> mt[i][j];
if (j == n) {
v[i] = mt[i][j];
}
}
}
for (int i = n + 1; i >= n / 2 + 1; --i) {
for (int j = 1; j <= n; ++j) {
if (i > n / 2 + 1) {
mt[i][j] = mt[i - 1][j];
} else {
mt[i][j] = v[j];
}
}
}
++n;
for (int i = 1; i <= n; ++i) {
for (int j = 1; j < n; ++j) {
cout << mt[i][j] << " ";
}
cout << "\n";
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwovKgpEZWNsYXLEg20gc2kgY2l0aW0g4oCcbuKAnS4KRGVjbGFyxINtIG1hdHJpY2VhIMiZaSB2ZWN0b3J1bCDDrm4gY2FyZSB2b20gc3RvY2EgdWx0aW1hIGNvbG9hbmEgYSBtYXRyaWNlaS4KQ3UgbyBzdHJ1Y3R1cmEgcmVwZXRpdGl2YSwgcGFyY3VyZyDigJxu4oCdIHBhc2k6CgkJQ3UgbyBhbHRhIHN0cnVjdHVyYSByZXBldGl0aXZhLCBjaXRpbSBlbGVtZW50ZWxlIG1hdHJpY2VpOgpDdSBhanV0b3J1bCB1bmVpIHN0cnVjdHVyaSBkZWNpemlvbmFsZSwgdm9tIHZlcmlmaWNhIGRhY8SDIGluZGljZWxlIGNvbG9hbmVpIGVzdGUgZWdhbCBjdSDigJxu4oCdOgpJbiBjYXogYWZpcm1hdGl2LCBmb2xvc2luZHUtbmUgZGUgaW5kaWNlbGUgbGluaWlsb3IsIApzdG9jxINtIMOubiB2ZWN0b3IsIGVsZW1lbnR1bCBjdXJlbnQuCgogICAgIDYuIEN1IHVuIOKAnGZvcuKAnSBjYXJlIHJ1bGVhemEgZGUgbGEg4oCcbiArIDHigJ0gcGFuYSBsYSBuIC8gMiArIDEgaW5jbHVzaXY6CkN1IG8gc3RydWN0dXJhIHJlcGV0aXRpdmEgY2FyZSBydWxlYXphIGRlIGxhIOKAnDHigJ0gcGFuYSBsYSDigJxu4oCdIGluY2x1c2l2OgpEYWPEgyBpbmRpY2VsZSBsaW5pZWkgZXN0ZSBtYWkgbWFyZSBkZWNhdCDigJxuIC8gMiArIDHigJ06IAoJbXV0YW0gZWxlbWVudGVsZSBsaW5pZWkgYW50ZXJpb2FyZSBwZSBsaW5pYSBjdXJlbnTEgy4KQWx0ZmVsIGNvcGllbSDDrm4gbGluaWEgY3VyZW50xIMgZWxlbWVudGVsZSB2ZWN0b3J1bHVpLCBmb2xvc2luZHUtbmUgZGUgaW5kaWNlbGUgY29sb2FuZWkgY3VyZW50ZS4KICAgICA3LiBJbmNyZW1lbnRhbSBwZSDigJxu4oCdLgoqLwoKY29uc3QgaW50IE1BWF9TSVpFID0gMTA7CgppbnQgbWFpbigpIHsKCWludCBuOwoJY2luID4+IG47CglpbnQgbXRbTUFYX1NJWkUgKyAyXVtNQVhfU0laRSArIDFdLCB2W01BWF9TSVpFICsgMV07Cglmb3IgKGludCBpID0gMTsgaSA8PSBuOyArK2kpIHsKCQlmb3IgKGludCBqID0gMTsgaiA8PSBuOyArK2opIHsKCQkJY2luID4+IG10W2ldW2pdOwoJCQlpZiAoaiA9PSBuKSB7CgkJCQl2W2ldID0gbXRbaV1bal07CgkJCX0KCQl9Cgl9Cglmb3IgKGludCBpID0gbiArIDE7IGkgPj0gbiAvIDIgKyAxOyAtLWkpIHsKCQlmb3IgKGludCBqID0gMTsgaiA8PSBuOyArK2opIHsKCQkJaWYgKGkgPiBuIC8gMiArIDEpIHsKCQkJCW10W2ldW2pdID0gbXRbaSAtIDFdW2pdOwoJCQl9IGVsc2UgewoJCQkJbXRbaV1bal0gPSB2W2pdOwoJCQl9CgkJfQoJfQoJKytuOwoJZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgKytpKSB7CgkJZm9yIChpbnQgaiA9IDE7IGogPCBuOyArK2opIHsKCQkJY291dCA8PCBtdFtpXVtqXSA8PCAiICI7CgkJfQoJCWNvdXQgPDwgIlxuIjsKCX0KCXJldHVybiAwOwp9Cgo=
MTAKMTUgMTUgIDQgNTQgIDggNDggNDggNDcgODcgNDgKNTQgNjQgODQgNjggNzggNzggNzkgODcgIDkgNzkgCjg2ICA1IDQ2IDU0IDY4IDg3IDg5ICA3ICA4IDc5CjggIDc5ICA4IDU0IDQ3IDc5IDExIDE5IDIwIDEwMAoxNSAxNSAgNCA1NCAgOCA0OCA0OCA0NyA4NyA0OAo1NCA2NCA4NCA2OCA3OCA3OCA3OSA4NyAgOSA3OSAKODYgIDUgNDYgNTQgNjggODcgODkgIDcgIDggNzkKOCAgNzkgIDggNTQgNDcgNzkgMTEgMTkgMjAgMTAwCjU0IDY0IDg0IDY4IDc4IDc4IDc5IDg3ICA5IDc5IAo4NiAgNSA0NiA1NCA2OCA4NyA4OSAgNyAgOCA3OQo=
10
15 15 4 54 8 48 48 47 87 48
54 64 84 68 78 78 79 87 9 79
86 5 46 54 68 87 89 7 8 79
8 79 8 54 47 79 11 19 20 100
15 15 4 54 8 48 48 47 87 48
54 64 84 68 78 78 79 87 9 79
86 5 46 54 68 87 89 7 8 79
8 79 8 54 47 79 11 19 20 100
54 64 84 68 78 78 79 87 9 79
86 5 46 54 68 87 89 7 8 79