시간에 따라 자라는 식물을 심고, h보다 큰 식물을 구간에서 뽑고, 구간의 식물 수를 세는 연산을 처리한다.
어려움9세그먼트 트리이분 탐색정렬구현아직 제출이 없습니다시간 제한3초메모리 제한128 MB온조는 정원 N개를 가꾸는 정원사이다. 처음에는 어느 정원에도 식물이 심어져 있지 않고, 정원 하나에 심을 수 있는 식물의 수에는 제한이 없다. 모든 식물은 하루에 k만큼 자란다. 즉, 높이가 h인 식물을 x번째 날에 심었다면 y번째 날의 높이는 h+k(y−x)이다. 온조는 작업 M개를 수행해 정원 N개를 가꾸려고 한다.
작업은 세 종류이다.
1 t x h: t번째 날에 x번째 정원에 높이가 h인 식물을 하나 심는다.2 t l r h: t번째 날에 l번째 정원부터 r번째 정원까지 심어져 있는 식물 중에서 높이가 h를 넘는 것을 모두 뽑아낸다. 높이가 h와 같은 식물은 그대로 둔다.3 t l r: t번째 날에 l번째 정원부터 r번째 정원까지 심어져 있는 식물의 수를 출력한다.온조는 솜씨 좋은 정원사라서 첫 번째 작업과 두 번째 작업은 쉽게 해내지만, 수학에 약해 세 번째 작업은 버거워한다. 세 번째 작업의 답을 대신 구해 주자.
첫째 줄에 정원의 수 N (1≤N≤105), 온조와 당신이 수행할 작업의 수 M (1≤M≤106), 모든 식물이 하루에 자라는 높이 k (1≤k≤109)가 주어진다.
둘째 줄부터 M개의 줄에 작업의 정보가 날짜가 증가하는 순서로 주어진다. l, r, x는 1 이상 N 이하이고 l≤r이며, 나머지 수는 모두 1 이상 109 이하의 자연수이다. 온조는 같은 날에 작업을 두 개 하는 것을 원하지 않으므로, 하루에 수행하는 작업은 최대 하나이다.
세 번째 작업의 답을 한 줄에 하나씩, 입력에 주어진 순서대로 출력한다. 작업 M개 중에 세 번째 작업이 적어도 하나 있다.