시간 제한
메모리 제한
시간 제한
1초
메모리 제한
128 MB
2차원 벡터는 (X, Y)라는 두 정수 좌표로 나타낼 수 있다.
두 개 이상의 벡터를 더하면, 각 좌표를 따로 더한 벡터가 된다. 예를 들어 (1, 2) + (3, 4) + (5, 6) = (1 + 3 + 5, 2 + 4 + 6) = (9, 12)이다.
벡터 (x, y)의 가중치는 x * x + y * y로 정의한다.
평면 위에 N개의 영벡터가 아닌 벡터가 주어진다. 이 벡터들 중 일부를 선택했을 때, 선택한 모든 벡터의 합의 가중치가 최대가 되도록 하는 프로그램을 작성하라.
계산 과정과 정답은 64비트 정수 범위가 필요할 수 있다.
첫 줄에 벡터의 개수 N이 주어진다. 1 <= N <= 30,000이다.
다음 N개의 줄에는 각 벡터의 좌표 X와 Y가 공백 하나로 구분되어 주어진다.
각 좌표는 -30,000 <= X, Y <= 30,000을 만족하며, 주어지는 벡터는 (0, 0)이 아니다.
선택한 벡터들의 합이 가질 수 있는 최대 가중치를 한 줄에 출력한다.