2021/10/19
A - 2点間距離の最大値 ( The longest distance ) をpythonで解く
コーディング力向上を目標に、競プロに手を出してみることにする。
AtCoder 版!蟻本 (初級編) が最初のとっかかりとして良さそうだったので、試しに数問解いてみた。
今回解いたのはその中の1つ。
問題のリンクは↓
https://atcoder.jp/contests/arc004/tasks/arc004_1
平面上にN個の点が与えられるので、それぞれを結んだ距離の中で一番長くなるものを出力しろという問題。
それぞれを結んだ距離 = ユークリッド距離なので、コードでの表現方法を調べる。
pythonでrootは
import math
math.sqrt(x)
で、pythonでべき乗は
print(x ** n)
>> xのn乗
なのでコードに落とし込むと下記のようになる
ユークリッド距離算出コード
# 地点a, bのユークリッド距離算出
import math
math.sqrt((x[a] - x[b]) ** 2 + (y[a] - y[b]) ** 2)
あとはうまく動くように整形しながらコード書いていくだけ
N = int(input())
x = [0] * N
y = [0] * N
for i in range(N):
x[i], y[i] = map(int, input().split())
ans = 0
for a in range(N):
for b in range(a + 1, N):
ans = max(ans, ((x[a] - x[b]) ** 2 + (y[a] - y[b]) ** 2) ** 0.5)
print(ans)
無事AC
https://atcoder.jp/contests/arc004/submissions/26193607