점 a에서 b까지의 최소거리를 구하는 문제.
방해물 f가 한개 존재하지만 한개로는 무수히 많은 path를 방해할 수 없다.
방해 가능한 경우의 수는 a와 b와 f가 일직선상에 존재하고 f 가 두 점 사이에 있을 때.
이경우만 예외처리해서 +2 해주면 된다.
import sys
input = sys.stdin.readline
for test in range(int(input())):
input()
a_x, a_y = map(int, input().split())
b_x, b_y = map(int, input().split())
if a_x < b_x:
a_x, b_x = b_x, a_x
if a_y < b_y:
a_y, b_y = b_y, a_y
f_x, f_y = map(int, input().split())
answer = a_x-b_x + a_y-b_y
if a_x == b_x == f_x and a_y > f_y > b_y:
answer += 2
if a_y == b_y == f_y and a_x > f_x > b_x:
answer += 2
print(answer)
'practivceAlgorithm > codeforce' 카테고리의 다른 글
[codeforce][Python] #719 A.Do Not Be Distracted! (0) | 2021.10.17 |
---|---|
[Codefroce][Python] div.3 #731 - E. Air Conditioners (0) | 2021.10.03 |
[Codefroce][Python] div.3 #731 - D. Co-growing Sequence (0) | 2021.10.03 |
[Codefroce][Python] div.3 #731 - C. Pair Programming (0) | 2021.10.03 |
[Codefroce][Python] div.3 #731 - B. Alphabetical Strings (0) | 2021.10.03 |