Тема: Вивести матрицю по малюнку
Доброго дня. Почали вчити динамічне виділення пам'яті в С++. Там, начебто, все зрозуміло, але я не можу розібратись з завданням, де потрібно написати функцію, яка заповняє заштриховану область(малюнок нижче) квадратної матриці, в якої всі елементи є одиницями, нулями. Ось код, де я намагався відштовхнутись від заповнення по діагоналі:
#include <iostream>
#include <stdio.h>
#include <iomanip>
using namespace std;
//функція
void func(int** arr, int n)
{
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            arr[j][i] = 0;
            arr[i][j] = 1;
            
        }
    }
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
            cout << setw(4) << arr[i][j];
            cout << endl;
    }
}
int main()
{
    int **arr, n;
    cout << "Enter order of matrix: ";
    cin >> n;
    cout << "--------------------------------" << "\n" << endl;
    arr = new int*[n];
    for (int i = 0; i < n; i++)
    {
        arr[i] = new int[n];
    }
    
    func(arr, n);
    for (int i = 0; i < n; i++)
    {
        delete[] arr[i];
    }
    delete[] arr;
    return 0;
}Мені тільки потрібно пояснити або показати, який алгоритм дії має бути у функції, щоб вийшла відповідна матриця. З динамічною пам'яттю в мене проблем немає. Дякую!