만드는 중입니다

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

삼각형 내부 포함

시간 제한4초메모리 제한1024 MB

요약
각 보물 지점마다 (0,0)과 (x,0)을 꼭짓점으로 하는 삼각형 내부에 있는 다른 보물들의 가치 합을 구합니다.
난이도

보통10점 중 7점

유형
기하, 정렬, 세그먼트 트리
정답자
아직 제출이 없습니다

문제

당신은 최근 농장 땅에 보물이 묻혀 있다는 것을 발견했습니다. 보물이 아주 많습니다! 당신은 곧바로 땅 주위에 울타리를 치기로 합니다.

안타깝게도 울타리 기둥은 하나뿐입니다. 울타리 자재를 더 사려면 마을까지 차를 몰고 가야 합니다. 하지만 땅을 그대로 열어 둘 수는 없으니, 떠나 있는 동안 보물 일부를 지킬 임시 울타리를 만들기로 합니다. 기둥을 땅에 꽂고, 헛간 벽의 두 변 각각과 기둥 사이를 철사로 곧게 이어서 삼각형 영역을 구분합니다. 또한 땅이 매우 단단해서, 보물을 묻으려고 파 놓은 자리만 기둥을 빠르게 꽂을 수 있을 정도로 흙이 부드럽습니다.

가장 좋은 선택을 찾기 위해 먼저 다음을 계산합니다. 밭에 있는 각 보물마다 그 자리에 기둥을 꽂고 위와 같이 울타리를 완성했다고 가정합니다. 이때 울타리 안에 들어가는 모든 보물의 가치 합은 얼마입니까? 기둥 아래에 있는 보물은 누군가 기둥 주변을 파내어 손을 댈 수 있으므로 울타리 안에 포함된 것으로 보지 않습니다.

입력

첫 줄에는 두 정수 nn (1≤n≤1051 \le n \le 10^5)과 xx (1≤x≤1091 \le x \le 10^9)가 주어집니다. nn은 보물 점의 개수이고, xx는 헛간 벽의 두 모서리를 (0,0)(0,0)과 (x,0)(x,0)에 놓습니다.

다음 nn개 줄에는 각각 세 정수 xx, yy, vv (−109≤x≤109-10^9 \le x \le 10^9, 1≤y≤1091 \le y \le 10^9, 1≤v≤1091 \le v \le 10^9)가 주어집니다. 이는 보물 하나의 위치 (x,y)(x,y)와 가치 vv입니다. 모든 점은 서로 다릅니다. 또한 각 점에 대해, 그 점과 헛간 벽이 이루는 삼각형의 경계 위에는 다른 보물 점이 없다고 보장됩니다.

출력

nn개의 줄을 출력합니다. 입력 순서대로 보물 점마다 한 줄씩 출력합니다. 각 점에 대해, 그 점과 헛간 벽이 이루는 삼각형 내부에 있는 모든 점의 가치 합을 정수 하나로 출력합니다. 점 자신의 가치는 이 합에서 제외합니다.

예제2

  1. 예제 1

    입력
    5 8
    -8 1 1
    -1 10 2
    0 3 4
    7 1 8
    8 2 16
    
    예상 출력
    0
    12
    0
    0
    8
    
  2. 예제 2

    입력
    6 6
    0 1 1
    2 3 10
    2 5 100
    3 1 1000
    3 5 10000
    4 5 100000
    
    예상 출력
    0
    1000
    1010
    0
    1010
    1000