diverta 2019 B-Picking Up 해설
URL
문제 개요
구속
1 <= N <= 50
코드 커밋
#!/usr/bin/env python3
import sys
def solve(N: int, x: "List[int]", y: "List[int]"):
ans_max = 0
dist = []
for i in range(N):
for j in range(i + 1, N):
# x は正にする
if x[i] - x[j] > 0:
dist.append((x[i] - x[j], y[i] - y[j]))
elif x[i] - x[j] < 0:
dist.append((-x[i] + x[j], -y[i] + y[j]))
else: # x == 0 の時は向きに注意
dist.append((0, abs(y[i] - y[j])))
for i in range(N * (N - 1) // 2):
ans_i = 0
for j in range(N * (N - 1) // 2):
if dist[i] == dist[j]:
ans_i += 1
ans_max = max(ans_max, ans_i)
print(N - ans_max)
return
# Generated by 1.1.7.1 https://github.com/kyuridenamida/atcoder-tools (tips: You use the default template now. You can remove this line by using your custom template)
def main():
def iterate_tokens():
for line in sys.stdin:
for word in line.split():
yield word
tokens = iterate_tokens()
N = int(next(tokens)) # type: int
x = [int()] * (N) # type: "List[int]"
y = [int()] * (N) # type: "List[int]"
for i in range(N):
x[i] = int(next(tokens))
y[i] = int(next(tokens))
solve(N, x, y)
if __name__ == "__main__":
main()
고찰하다.
실시 방침
다음의 반성
참고 자료
키에서 tapple을 가져올 수 있습니다.
Reference
이 문제에 관하여(diverta 2019 B-Picking Up 해설), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/knk_kei/articles/diverta2019-b-picking-up텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)