1. paizaラーニングトップ
  2. レベルアップ問題集
  3. Bランク・スキルチェック過去問題セット(言語選択)
  4. 問題一覧 Objective-C編
  5. 「部外者をはじけ」を解くために:part1 Objective-C編

Bランク・スキルチェック過去問題セットのサムネイル
「部外者をはじけ」を解くために:part1 Objective-C編(paizaランク D 相当)

問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!

問題

下記の問題をプログラミングしてみよう!

「部外者をはじけ」では、N + 1 行にわたって入力が与えられます。
入力を受け取り、そのまま出力しましょう。
ただし、検出した人の数 N は整数型、各人物の二次元座標 (x_i, y_i) は小数型で受け取ってください。
さらに、受け取った (x_i, y_i) の組を与えられる順に 1 つの配列に格納してください。

入力される値

N
x_1 y_1
.
.
.
x_N y_N

・1 行目には、検出した人の数 N が入力されます。

・i+1 (1 ≦ i ≦ N) 行目には、i 番目の人物の二次元座標 (x_i, y_i) が空白区切りで与えられます。

・なお、座標の単位は [m] で、座標はそれぞれ小数点以下 2 桁までの小数で与えられます。

・入力は合計 N + 1 行からなり、末尾に改行を 1 つ含みます。


入力値最終行の末尾に改行が1つ入ります。
文字列は標準入力から渡されます。 標準入力からの値取得方法はこちらをご確認ください
期待する出力

期待する出力は N + 1 行からなります。
1 行目には、検出した人の数 N を出力してください。
i+1 (1 ≦ i ≦ N) 行目には、i 番目の人物の二次元座標 (x_i, y_i) を空白区切りで出力してください。
ただし、小数の出力に関しては真値との誤差が 0.001 未満である場合にのみ正答とみなされます。

出力の末尾に改行を入れ、余計な文字、空行を含んではいけません。

条件

すべてのテストケースで以下の条件を満たします。

・ 2 ≦ N ≦ 100
・ 0 ≦ (部外者の数) < (N/2)
・ 0 ≦ x_i < 640
・ 0 ≦ y_i < 480
・ (x_i,y_i) ≠ (x_j,y_j) (i ≠ j)

入力例1

20
331.26 330.83
264.31 3.44
118.56 118.09
162.59 162.15
329.92 330.36
271.86 272.05
371.44 371.42
340.22 340.48
286.67 286.36
466.66 466.17
407.49 407.67
381.02 381.45
271.05 270.96
39.97 39.84
464.65 464.65
352.98 352.62
260.1 260.41
31.92 31.92
476.45 139.5
184.83 185.22

出力例1

20
331.26 330.83
264.31 3.44
118.56 118.09
162.59 162.15
329.92 330.36
271.86 272.05
371.44 371.42
340.22 340.48
286.67 286.36
466.66 466.17
407.49 407.67
381.02 381.45
271.05 270.96
39.97 39.84
464.65 464.65
352.98 352.62
260.1 260.41
31.92 31.92
476.45 139.5
184.83 185.22

入力例2

2
210.43 423.86
104.71 212.42

出力例2

2
210.43 423.86
104.71 212.42

入力例3

4
10.0 20.0
340.0 235.0
20.0 40.0
30.0 60.0

出力例3

4
10 20
340 235
20 40
30 60

問題一覧へ戻る

ページの先頭へ戻る