编程题
### 问题描述
乐乐负责维护一个公园的灯光展示,这些灯按照一个方阵排列。每个灯可以处于开启(用 `1` 表示)或关闭(用 `0` 表示)的状态。乐乐想要通过一系列的操作,使得当观察这个方阵从任意正方向($0$ 度、$90$ 度、$180$ 度、$270$ 度)看时,任一位置上只要有一个方向的灯是开启的,这个位置在最终展示中就应该是开启的。请计算出最终的灯光方阵。
### 输入格式
第一行包含一个整数 $N$,代表方阵的大小。
接下来的 $N$ 行,每行包含 $N$ 个数字(`0` 或 `1`),代表方阵灯的初始状态。
### 输出格式
输出应包含 $N$ 行,每行 $N$ 个数字,代表最终的灯光方阵状态。
### 样例输入
```
4
0 0 0 0
0 0 0 0
0 0 1 0
1 0 0 0
```
### 样例输出
```
1 0 0 1
0 1 1 0
0 1 1 0
1 0 0 1
```
### 评测数据规模
- $1 \leq N \leq 100$。