게으른 소

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

더운 여름날, 소 베시는 몹시 게으르다. 베시는 들판에서 자신의 위치를 정해, 짧은 거리 안에서 먹을 수 있는 풀이 최대한 많은 지점을 고른다.

베시의 들판에는 풀 패치가 NN개 있다 (1N1000001 \le N \le 100\,000). 각 패치 ii에는 gig_i단위의 풀이 있고 (1gi100001 \le g_i \le 10\,000), 서로 다른 좌표 (xi,yi)(x_i, y_i)에 놓여 있다 (0xi,yi10000000 \le x_i, y_i \le 1\,000\,000). 베시는 들판의 한 점을 시작 위치로 정한다. 이 점은 풀 패치 위일 수도 있고, 정수 좌표가 아닐 수도 있다. 시작 위치에서 KK보 이하(맨해튼 거리) 안에 있는 풀의 총량을 최대화하는 위치를 찾아야 한다 (1K20000001 \le K \le 2\,000\,000).

베시가 한 보를 걸면 북, 남, 동, 서로 정확히 1단위 이동한다. 예를 들어 (0,0)(0,0)에서 (3,2)(3,2)까지는 5보가 필요하다. 보의 길이를 나눠 쓸 수 있다. 북쪽으로 0.5, 동쪽으로 0.5 이동하는 것도 한 보로 본다.

입력

  • 첫 줄: 정수 NN, KK
  • 다음 NN줄: 각 줄에 gig_i, xix_i, yiy_i (풀의 양과 좌표)

출력

한 줄에, 시작 위치를 최적으로 고를 때 KK보 이내에서 먹을 수 있는 풀의 최대 총량을 출력한다.

힌트

좌표를 (u,v)=(x+y,xy)(u,v)=(x+y, x-y)로 바꾸면 맨해튼 거리 제한이 uu0K|u-u_0|\le Kvv0K|v-v_0|\le K를 동시에 만족하는 직사각형 영역이 된다. uu로 정렬한 뒤 폭 2K2K 이내의 구간을 슬라이딩 윈도우로 훑고, 구간 안에서 vv에 대해 같은 방식으로 합을 계산하면 된다.