#include <iostream>
#include <vector>
using namespace std;
int main() {
// Exemplu de matrice
vector<vector<int>> mt = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12},
{13, 14, 15, 16}
};
int startRow = 2; // Linia de start a submatricei
int startCol = 2; // Coloana de start a submatricei
int size = 2; // Dimensiunea submatricei pătratice
// Creăm o matrice temporară pentru a stoca submatricea rotită
vector<vector<int>> temp(size, vector<int>(size));
// Rotim submatricea
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
temp[size - j - 1][i] = mt[startRow + i][startCol + j];
}
}
// Copiem submatricea rotită în matricea originală
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
mt[startRow + i][startCol + j] = temp[i][j];
}
}
cout << "Matricea dupa rotirea submatricei:\n";
for (const auto& row : mt) {
for (int val : row) {
cout << val << ' ';
}
cout << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCkgewogICAgLy8gRXhlbXBsdSBkZSBtYXRyaWNlCiAgICB2ZWN0b3I8dmVjdG9yPGludD4+IG10ID0gewogICAgICAgIHsxLCAyLCAzLCA0fSwKICAgICAgICB7NSwgNiwgNywgOH0sCiAgICAgICAgezksIDEwLCAxMSwgMTJ9LAogICAgICAgIHsxMywgMTQsIDE1LCAxNn0KICAgIH07CgogICAgaW50IHN0YXJ0Um93ID0gMjsgLy8gTGluaWEgZGUgc3RhcnQgYSBzdWJtYXRyaWNlaQogICAgaW50IHN0YXJ0Q29sID0gMjsgLy8gQ29sb2FuYSBkZSBzdGFydCBhIHN1Ym1hdHJpY2VpCiAgICBpbnQgc2l6ZSA9IDI7ICAgICAvLyBEaW1lbnNpdW5lYSBzdWJtYXRyaWNlaSBwxIN0cmF0aWNlCgoKICAgIC8vIENyZcSDbSBvIG1hdHJpY2UgdGVtcG9yYXLEgyBwZW50cnUgYSBzdG9jYSBzdWJtYXRyaWNlYSByb3RpdMSDCiAgICB2ZWN0b3I8dmVjdG9yPGludD4+IHRlbXAoc2l6ZSwgdmVjdG9yPGludD4oc2l6ZSkpOwoKICAgIC8vIFJvdGltIHN1Ym1hdHJpY2VhCiAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7IGkrKykgewogICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgc2l6ZTsgaisrKSB7CiAgICAgICAgICAgIHRlbXBbc2l6ZSAtIGogLSAxXVtpXSA9IG10W3N0YXJ0Um93ICsgaV1bc3RhcnRDb2wgKyBqXTsKICAgICAgICB9CiAgICB9CgogICAgLy8gQ29waWVtIHN1Ym1hdHJpY2VhIHJvdGl0xIMgw65uIG1hdHJpY2VhIG9yaWdpbmFsxIMKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7CiAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBzaXplOyBqKyspIHsKICAgICAgICAgICAgbXRbc3RhcnRSb3cgKyBpXVtzdGFydENvbCArIGpdID0gdGVtcFtpXVtqXTsKICAgICAgICB9CiAgICB9CgogICAgY291dCA8PCAiTWF0cmljZWEgZHVwYSByb3RpcmVhIHN1Ym1hdHJpY2VpOlxuIjsKICAgIGZvciAoY29uc3QgYXV0byYgcm93IDogbXQpIHsKICAgICAgICBmb3IgKGludCB2YWwgOiByb3cpIHsKICAgICAgICAgICAgY291dCA8PCB2YWwgPDwgJyAnOwogICAgICAgIH0KICAgICAgICBjb3V0IDw8IGVuZGw7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0K