체바피

시간 제한3초메모리 제한128 MB

요약
매일 새로운 뗏목이 추가될 때, 고란이 두 강둑에서 총 L미터를 달리며 각 강둑에서 달린 거리와 먹은 체바피 수를 구한다.
난이도

보통10점 중 5점

유형
시뮬레이션, 정렬, 배열
정답자
아직 제출이 없습니다

문제

고란은 큰 강가의 작은 도시에 산다. 강은 수직선으로 나타낼 수 있다. 고란의 집은 좌표 00에 있고, 강은 좌표가 커지는 방향으로 흐른다. 고란이 사는 쪽 강가를 A, 건너편 강가를 B라고 하자.

바로 내일부터 강에 뗏목 사공이 나온다. 사공은 싼값에 사람을 한쪽 강가에서 다른 쪽 강가로 건네주면서 손님에게 따뜻한 체바피를 구워 준다. 내일 첫 번째 뗏목이 운행을 시작하고, 모레 두 번째 뗏목이, 사흘 뒤 세 번째 뗏목이 시작하며, 이런 식으로 이어진다. 한번 운행을 시작한 뗏목은 그 뒤로도 계속 운행하므로 ii번째 날에는 첫 ii개의 뗏목이 모두 운행한다.

뗏목에는 사공 말고 아무도 없어서 손님은 한쪽 방향으로만 태운다. 돌아올 때는 다음 차례를 위해 체바피를 구우며 손님을 받지 않는다. A쪽에서 B쪽으로 손님을 태우는 뗏목은 방향 1로 운행하고, B쪽에서 A쪽으로 손님을 태우는 뗏목은 방향 2로 운행한다.

친구들이 저녁마다 강을 따라 달리며 몸매를 유지하는 것을 보고, 고란도 자기 몸을 만들 방법을 찾았다. 체바피를 곁들인 달리기다.

고란은 매일 A쪽 강가의 집에서 출발해 강을 따라 하류로 정확히 LL미터를 달리고, 따뜻한 체바피를 그냥 지나치지 않는다. 지금 서 있는 강가에서 건너편으로 손님을 태우는 뗏목의 선착장에 도착하면 고란은 뗏목을 기다렸다가 올라타고, 강을 건너는 동안 체바피 한 접시를 먹으며 쉰다. 건너편 강가의 같은 좌표에서 내려 계속 달린다. 지금 서 있는 쪽으로 손님을 태우는 뗏목은 고란에게 도움이 되지 않으므로 그 선착장은 지나쳐 달린다. 강을 건넌 거리는 그날 달린 LL미터에 들어가지 않는다.

뗏목의 정보가 운행을 시작하는 순서대로 주어진다. 각 뗏목에 대해 운행하는 방향(1 또는 2)과 고란의 집에서 선착장까지의 거리를 알고 있다. 날마다 고란이 A쪽에서 몇 미터를 달리는지, B쪽에서 몇 미터를 달리는지, 체바피를 몇 접시 먹는지 구하는 프로그램을 작성하시오.

아래 그림은 첫 번째 예제의 사흘을 차례로 보여 준다.


첫째 날 고란은 A쪽에서 500미터, B쪽에서 100미터를 달리고 체바피 1접시를 먹는다.


둘째 날 고란은 A쪽에서 150미터, B쪽에서 450미터를 달리고 체바피 1접시를 먹는다.


셋째 날 고란은 A쪽에서 350미터, B쪽에서 250미터를 달리고 체바피 3접시를 먹는다.

입력

첫째 줄에 자연수 NN과 LL이 주어진다. NN은 날의 수이고, LL은 고란이 매일 달려야 하는 거리다. (1≤N≤100 0001 \le N \le 100\,000, N<L<109N < L < 10^9)

다음 NN개 줄에는 그날 운행을 시작한 뗏목의 정보가 주어진다. 각 줄에 자연수 SS와 DD가 주어지는데, SS는 뗏목이 운행하는 방향이고 DD는 고란의 집에서 선착장까지의 거리다. (1≤S≤21 \le S \le 2, 0<D<L0 < D < L)

선착장까지의 거리가 서로 같은 뗏목은 없다.

출력

NN개의 날에 대해 각각 한 줄에 정수 세 개를 출력한다. 그날 A쪽 강가에서 달린 거리, B쪽 강가에서 달린 거리, 먹은 체바피 접시 수를 공백으로 구분해 출력한다.

예제2

  1. 예제 1

    입력
    3 600
    1 500
    1 150
    2 300
    
    예상 출력
    500 100 1
    150 450 1
    350 250 3
    
  2. 예제 2

    입력
    5 5000
    2 1000
    2 3000
    1 4000
    1 2000
    1 500
    
    예상 출력
    5000 0 0
    5000 0 0
    4000 1000 1
    3000 2000 3
    2500 2500 5