아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

자유를 향한 회전 (라지)

시간 제한5초메모리 제한512 MB

요약
매분 별 하나를 골라 그 별을 중심으로 시계 방향으로 90도 회전하거나 제자리에 머물며 M분 안에 원점에서 도달 가능한 가장 큰 거리 제곱을 구합니다.
난이도

어려움10점 중 9점

유형
기하, 정수론, BFS, 그리디
정답자
아직 제출이 없습니다

문제

우주선은 2차원 평면의 원점 (0,0)(0, 0)에서 출발한다. 은하에는 별이 NN개 있고, ii번째 별의 위치는 (Xi,Yi)(X_i, Y_i)이다.

1분마다 다음 두 가지 중 하나를 한다. 별을 하나 골라 그 별을 중심으로 우주선을 시계 방향으로 90도 회전시키거나, 그 자리에 머문다. 같은 별을 다시 고를 수 있다. 점 (p,q)(p, q)를 (a,b)(a, b)를 중심으로 시계 방향으로 90도 회전시키면 (a+q−b, b−p+a)(a + q - b,\ b - p + a)가 된다.

주어진 시간은 MM분이고, 원점에서 가장 멀리 떨어진 곳에서 끝내는 것이 목표이다. 회전은 정수 좌표를 정수 좌표로 옮기므로 원점과 최종 위치 사이의 거리의 제곱은 항상 정수이다. 이 정수를 구하라.

그림은 가능한 경로 하나에서 처음 세 번의 회전을 보여 준다. 노란 점은 별이고, 보라색 점은 우주선의 위치이다. 이 경로가 최적해의 일부라는 뜻은 아니다.

입력

첫째 줄에 테스트 케이스의 개수 TT가 주어진다. 이어서 테스트 케이스가 주어진다. 각 테스트 케이스의 첫째 줄에는 NN이, 둘째 줄에는 MM이 주어지고, 다음 NN개의 줄에는 별 하나의 위치 XiX_i와 YiY_i가 주어진다.

제한

  • 1≤T≤1001 \le T \le 100
  • 1≤N≤10001 \le N \le 1000
  • −1000≤Xi≤1000-1000 \le X_i \le 1000
  • −1000≤Yi≤1000-1000 \le Y_i \le 1000
  • 1≤M≤1061 \le M \le 10^6
  • 같은 위치에 있는 별은 없다.
  • 원점에 별이 있을 수 있다.

출력

각 테스트 케이스마다 Case #x: S 형식으로 한 줄씩 출력한다. xx는 1부터 시작하는 테스트 케이스 번호이고, SS는 MM분 안에 우주선이 원점에서 도달할 수 있는 최대 거리의 제곱이다. SS는 부호 있는 64비트 정수 범위에 들어간다.

예제1

  1. 예제 1

    입력
    3
    4
    1
    -2 4
    1 -2
    4 1
    0 2
    1
    4
    -5 0
    2
    5
    -1 1
    -2 2
    
    예상 출력
    Case #1: 40
    Case #2: 100
    Case #3: 40