만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

파티 장소 정하기 (Large)

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

요약
주어진 직사각형 안의 초대받은 격자 집 가운데 모든 초대받은 집까지 맨해튼 거리 합이 가장 작은 집의 좌표와 총합을 구합니다.
난이도

보통10점 중 6점

유형
정렬, 누적 합, 수학
정답자
아직 제출이 없습니다

문제

신은 바둑판처럼 생긴 도시에 산다. 도시는 2차원 평면이고, 사람들은 격자선을 따라 동, 서, 남, 북으로만 움직인다. 점 (x1,y1)(x_1, y_1)에서 점 (x2,y2)(x_2, y_2)까지의 거리는 ∣x1−x2∣+∣y1−y2∣|x_1 - x_2| + |y_1 - y_2|이다.

신은 이번 주 일요일에 집에서 파티를 열려고 한다. 참석자 명단은 이미 정해졌고, 이제 누구의 집에서 파티를 열지 정하면 된다.

신은 직사각형 구역 몇 개를 골라 그 안에 사는 사람을 모두 초대했고, 초대받은 사람은 전부 참석하겠다고 답했다. 직사각형 구역은 네 정수 (x1,y1,x2,y2)(x_1, y_1, x_2, y_2)로 나타내고 x1≤x2x_1 \le x_2, y1≤y2y_1 \le y_2를 만족한다. 구역 안의 격자점마다 한 명씩 살기 때문에, 구역 (x1,y1,x2,y2)(x_1, y_1, x_2, y_2)에 사는 사람은 (x2−x1+1)×(y2−y1+1)(x_2 - x_1 + 1) \times (y_2 - y_1 + 1)명이다.

파티는 참석자 중 한 명의 집에서 열어야 한다. 신은 참석자 전원이 자기 집에서 파티 장소까지 이동하는 거리의 합을 가장 작게 만들고 싶다. 어느 집에서 열어야 하는지 구하여라.

입력

첫 줄에 테스트 케이스의 개수 TT가 주어진다. 각 테스트 케이스의 첫 줄에는 직사각형 구역의 개수 BB가 주어진다. 이어지는 BB개의 줄에는 각각 네 정수 x1x_1, y1y_1, x2x_2, y2y_2가 공백으로 구분되어 주어진다. 이는 신이 초대한 사람이 사는 직사각형 구역의 좌표이다.

출력

각 테스트 케이스마다 한 줄에 "Case #t: x y d" 형식으로 출력한다. tt는 1부터 시작하는 테스트 케이스 번호, (x,y)(x, y)는 파티를 열 집의 좌표, dd는 그 집까지 참석자 전원이 이동하는 거리의 합이다.

거리의 합이 최소인 집이 여러 곳이면 xx가 가장 작은 집을 고른다. 그러고도 여러 곳이 남으면 그중 yy가 가장 작은 집을 고른다.

제한

  • 1≤T≤101 \le T \le 10
  • 1≤B≤10001 \le B \le 1000
  • ∣x1∣,∣y1∣,∣x2∣,∣y2∣≤109|x_1|, |y_1|, |x_2|, |y_2| \le 10^9
  • x1≤x2x_1 \le x_2, y1≤y2y_1 \le y_2
  • 한 테스트 케이스 안의 직사각형 구역은 서로 겹치지 않는다.
  • 한 테스트 케이스에 사는 사람 수의 합은 11 이상 10610^6 이하이다.

예제2

  1. 예제 1

    입력
    2
    1
    0 0 2 2
    3
    -1 2 -1 2
    0 0 0 0
    1 3 1 3
    
    예상 출력
    Case #1: 1 1 12
    Case #2: -1 2 6
    
  2. 예제 2

    입력
    1
    2
    0 0 1 1
    100 100 101 101
    
    예상 출력
    Case #1: 1 1 800