🔗 UVA-11498 Division of Nlogonia

tags: 基本(Basic)

測機用題,範例程式碼已於UVA瘋狂程設(CPE)ZeroJudge 上皆測試通過。
不過 PythonZeroJudge 上需要使用 I/O 優化。

題意

  • 給定一個分割點的座標 (n,m)(n, m) ,以及 kk 個點的座標 (xi,yi)(x_i, y_i) ,輸出每個點在分割點的哪個象限,若在邊界上則輸出 divisa

思路

  • 根據題意判斷條件即可。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import sys
input = sys.stdin.readline
def print(val):
sys.stdout.write(str(val) + '\n')

while (True):
K = int(input())
if not K:
break
N, M = map(int, input().split())
for _ in range(K):
X, Y = map(int, input().split())
if X == N or Y == M:
print("divisa")
elif X > N and Y > M:
print("NE")
elif X > N and Y < M:
print("SE")
elif X < N and Y > M:
print("NO")
else:
print("SO")
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <bits/stdc++.h>
using namespace std;
#define endl '\n'

int main() {
ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr);
int k, n, m, x, y;
while (cin >> k && k) {
cin >> n >> m;
while (k--) {
cin >> x >> y;
if (x == n || y == m) cout << "divisa" << endl;
else if (x > n && y > m) cout << "NE" << endl;
else if (x > n && y < m) cout << "SE" << endl;
else if (x < n && y > m) cout << "NO" << endl;
else cout << "SO" << endl;
}

}
return 0;
}

寫在最後

Cover photo is remixed from @Tekeli_liw3, thanks for their work!