만드는 중입니다

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

만남

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

요약
직선 위의 소들이 만나면 속도를 교환하고 헛간에 닿으면 멈출 때, 전체 무게의 절반이 멈추기까지 일어난 만남의 횟수를 구한다.
난이도

어려움10점 중 8점

유형
정렬, 수학, 시뮬레이션, 투 포인터
정답자
아직 제출이 없습니다

문제

1차원 수직선 위의 위치 00과 LL (1≤L≤109)(1\le L\le 10^9)에 두 헛간이 있다. 이 수직선 위의 서로 다른 위치에 NN마리의 소 (1≤N≤5⋅104)(1\le N\le 5\cdot 10^4)가 있다. 헛간과 소는 모두 점으로 생각한다. 각 소 ii는 처음에 위치 xix_i에 있고, 초속 1의 속력으로 양의 방향 또는 음의 방향으로 움직이며, 이는 11 또는 −1-1인 정수 did_i로 주어진다. 각 소는 \[1,103]\[1,10^3] 범위의 무게 wiw_i도 가진다. 모든 소는 다음 사건 중 하나가 일어날 때까지 항상 일정한 속도로 움직인다.

  • 소 ii가 헛간에 도달하면 소 ii는 움직임을 멈춘다.
  • 두 소 ii와 jj가 헛간이 아닌 같은 점을 차지하면 만남이 일어난다. 이때 소 ii는 소 jj가 이전에 가지던 속도를, 소 jj는 소 ii가 이전에 가지던 속도를 받는다. 소들이 정수가 아닌 점에서 만날 수도 있다.

헛간에 도달해 움직임을 멈춘 소들의 무게 합이 전체 소의 무게 합의 절반 이상이 되는 가장 이른 시각을 TT라 하자. 시간 00부터 TT까지(시각 TT 포함) 동안 두 소 사이에서 일어난 만남의 총 횟수를 구하라.

입력

첫째 줄에 공백으로 구분된 두 정수 NN과 LL이 주어진다.

다음 NN개의 줄에는 각각 공백으로 구분된 세 정수 wiw_i, xix_i, did_i가 주어진다. 모든 위치 xix_i는 서로 다르며 0<xi<L0<x_i<L을 만족한다.

출력

한 줄에 답을 출력한다.

힌트

이 예시에서 소들은 다음과 같이 움직인다.

  1. 첫 번째 소와 두 번째 소가 시각 0.5에 위치 1.5에서 만난다. 이제 첫 번째 소의 속도는 −1-1, 두 번째 소의 속도는 11이다.
  2. 두 번째 소와 세 번째 소가 시각 1에 위치 2에서 만난다. 이제 두 번째 소의 속도는 −1-1, 세 번째 소의 속도는 11이다.
  3. 첫 번째 소가 시각 2에 왼쪽 헛간에 도달한다.
  4. 두 번째 소가 시각 3에 왼쪽 헛간에 도달한다.
  5. 헛간에 도달한 소들의 무게 합이 전체 소의 무게 합의 절반 이상이 되므로 과정이 끝난다. 세 번째 소는 시각 4에 오른쪽 헛간에 도달했을 것이다.

만남은 정확히 두 번 일어났다.

예제1

  1. 예제 1

    입력
    3 5
    1 1 1
    2 2 -1
    3 3 -1
    
    예상 출력
    2