Загрузка данных


#include <iostream>
using namespace std;

int main() {
    int n;
    cin >> n;

    if (n < 1 || n > 10) {
        cout << "Invalid size";
        return 0;
    }

    int a[10][10];

    for (int i = 0; i < n; i = i + 1) {
        for (int j = 0; j < n; j = j + 1) {
            if (!(cin >> a[i][j])) {
                cout << "Invalid matrix";
                return 0;
            }
        }
    }

    int k;
    string flag;
    cin >> k >> flag;

    if (k < 1 || k > 3 || (flag != "main" && flag != "anti")) {
        cout << "Invalid parameters";
        return 0;
    }

    int p = 0;
    while (p < k) {

        // транспонирование
        for (int i = 0; i < n; i = i + 1) {
            for (int j = i + 1; j < n; j = j + 1) {
                int temp = a[i][j];
                a[i][j] = a[j][i];
                a[j][i] = temp;
            }
        }

        // разворот строк
        for (int i = 0; i < n; i = i + 1) {
            for (int j = 0; j < n / 2; j = j + 1) {
                int temp = a[i][j];
                a[i][j] = a[i][n - 1 - j];
                a[i][n - 1 - j] = temp;
            }
        }

        p = p + 1;
    }

    if (flag == "main") {

        for (int i = 0; i < n; i = i + 1) {
            for (int j = i + 1; j < n; j = j + 1) {
                int temp = a[i][j];
                a[i][j] = a[j][i];
                a[j][i] = temp;
            }
        }

    } else {

        for (int i = 0; i < n; i = i + 1) {
            for (int j = 0; j < n - i - 1; j = j + 1) {
                int temp = a[i][j];
                a[i][j] = a[n - 1 - j][n - 1 - i];
                a[n - 1 - j][n - 1 - i] = temp;
            }
        }

    }

    for (int i = 0; i < n; i = i + 1) {
        for (int j = 0; j < n; j = j + 1) {
            cout << a[i][j] << " ";
        }
        cout << endl;
    }

    return 0;
}