https://codeforces.com/contest/1624/problem/B
시간 2초, 메모리 256MB
input :
output :
조건 :
an arithmetic progression (AP) if there exists a number d (called "common difference") such that xi + 1 = xi + d
arithmetic progression == 등차수열.
Choose a positive integer m and multiply exactly one of the integers a, b or c by m.
임의의 숫자 m을 고르고 a, b, c 중 하나에 곱할 수 있다.
등차수열을 생각하고 바로 식을 만들어 생각을 해야 했는데 괜히 다른 길로 자꾸 빠졌다.
등차수열 이라는 점을 빠르게 인지를 한다면 접근을 바로 할 수 있다.
오름차순, 내림차순 두 개의 수열을 만든다 생각을 하고 해당하는 수를 만들 수 있는지 확인을 한다.
그렇지 않은 경우 b * m을 해서 등차의 경우를 만들어야 한다.
예외적인 상황으로 [1 1 1]과 같은 것을 예외처리 해야 한다.
마지막 예외처리로 (a + c) / 2 != b를 만족해야 한다.
import sys
t = int(sys.stdin.readline())
for _ in range(t):
a, b, c = list(map(int, sys.stdin.readline().split()))
d = b - a
if (2 * b - a) % c == 0 and (2 * b - a) > 0:
print("YES")
continue
d = b - c
if (2 * b - c) % a == 0 and (2 * b - c) > 0:
print("YES")
continue
total = a + c
if (total / 2) % b == 0 and total / 2 != b:
print("YES")
continue
print("NO")