# 資訊之芽 Week4 作業題解
[TOC]
## 大十字
> [Link](https://neoj.sprout.tw/problem/987/)
### 講解
我們可以紀錄每一個人的 $x$ 座標和 $y$ 座標,
之後用兩個迴圈分別檢查直行橫列的座位,
找到其中的最大值。
要注意的是自己那一個座位的答案不能算。
### Pseudo Code
```=
let arr[][] denote the seat
let X[] denote the X-coordinate
let Y[] denote the Y-coordinate
c := 0
ans := 0
int main() {
input and record X[] and Y[].
input c
for (i = 0 ~ n)
if (arr[i][Y[c]] != c)
ans = max(ans, arr[i][Y[c]])
for (j = 0 ~ m)
if (arr[X[c]][j] != c)
ans = max(ans, arr[X[c]][j])
output ans
}
```
## 娃娃魚的站位哲學
> [Link](https://neoj.sprout.tw/problem/461/)
### 講解
題目在問 $(x,y)$ 能不能距離 baba 陣列中其中一個點的距離小於等於 $10$、距離 mie 陣列其中一個點的距離小於等於 $10$、miao 陣列其中一個點的距離小於等於 $12$。
所以就照著題意下去做就好了。
### Pseudo Code
```=
double distance(x1, y1, x2, y2) {
return sqrt(pow(x2 - x1, 2) + pow(y2 - y1, 2))
}
bool isValid(a, b, c, baba[], mie[], miao[], x, y) {
aa := 0
bb := 0
cc := 0
for each (x_i, y_i) in baba:
if distance(x, y, x_i, y_i) <= 10: aa := 1
for each (x_i, y_i) in mie:
if distance(x, y, x_i, y_i) <= 10: bb := 1
for each (x_i, y_i) in miao:
if distance(x, y, x_i, y_i) <= 12: cc := 1
return aa && bb && cc
}
```