만드는 중입니다

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

다트 게임

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

요약
원점을 중심으로 한 한 변의 길이가 L인 정사각형을 임의의 각도로 회전해 놓을 때, 안에 들어오는 다트 점수 합의 최댓값을 구합니다.
난이도

보통10점 중 7점

유형
기하, 정렬, 구간
정답자
아직 제출이 없습니다

문제

다트는 재미있는 게임이다. 이 문제의 게임은 조금 다르다.

보드는 무한한 2차원 평면으로 볼 수 있으며, 다트 NN개를 이미 던졌다. 각 다트는 좌표 (X,Y)(X, Y)에 있고 점수 SS를 가진다. 같은 위치에 여러 다트가 있을 수 있고, 위치가 같아도 점수는 다를 수 있다. 점수는 음수일 수도 있다.

다트를 모두 던진 뒤, 평면 위에 한 변의 길이가 LL인 정사각형을 그려야 한다. 정사각형의 중심은 반드시 (0,0)(0, 0)이어야 한다. 정사각형은 원하는 방향으로 회전시킬 수 있지만, 회전은 다트를 고려하기 전에 한 번만 한다.

정사각형 안에 있거나 경계 위에 있는 다트의 점수를 모두 얻는다. 다트의 위치와 점수, 그리고 LL이 주어졌을 때 얻을 수 있는 점수의 최댓값을 구하라. 정사각형이 다트를 하나도 포함하지 않아도 된다.

입력

테스트 케이스는 하나 이상 주어진다. 첫 줄에 테스트 케이스 수 TT (1≤T≤1001 \le T \le 100)가 주어진다.

각 테스트 케이스의 첫 줄에는 다트 수 NN (1≤N≤1051 \le N \le 10^5)과 정사각형의 한 변 길이 LL (1≤L≤1051 \le L \le 10^5)이 공백으로 구분되어 주어진다. 이어서 NN개의 줄에 정수 XX, YY, SS가 공백으로 구분되어 주어진다. 이는 좌표 (X,Y)(X, Y)에 있는 다트가 점수 SS를 준다는 뜻이다. 모든 값은 −105≤X,Y,S≤105-10^5 \le X, Y, S \le 10^5을 만족한다.

출력

각 테스트 케이스마다 정사각형을 그려 얻을 수 있는 최대 점수를 한 줄에 출력한다.

힌트

이 그림은 첫 번째 테스트 케이스를 나타낸다. 점수 100을 주는 점을 포함할 방법은 없지만, 정사각형을 조금 회전하면 점수 -101을 주는 점은 포함하지 않게 할 수 있다.

예제1

  1. 예제 1

    입력
    2
    5 8
    4 5 100
    3 3 4
    -2 -2 -3
    -1 1 2
    4 -1 -101
    7 10
    1 1 -10
    -1 1 -10
    1 -1 -10
    -1 -1 -10
    0 1 -10
    1 0 -10
    2 2 -1000
    
    예상 출력
    3
    -1060