시간 제한
메모리 제한
시간 제한
1초
메모리 제한
128 MB
여러 층으로 된 직사각형 건물이 있다. 각 층에는 막대기 하나가 놓여 있으며, 막대기의 길이는 층마다 다를 수 있다. 시간 0부터 모든 막대기는 동시에 일정한 속도로 움직인다. 각 막대기는 왼쪽에서 오른쪽으로 움직이거나 오른쪽에서 왼쪽으로 움직이며, 속도는 양의 정수이다.
시간 0에 각 막대기는 건물의 왼쪽 벽 또는 오른쪽 벽에 닿아 있다. 이후 막대기는 주어진 방향과 속도로 움직이다가, 막대기의 한쪽 끝이 왼쪽 벽 또는 오른쪽 벽에 닿으면 즉시 방향을 바꾸어 계속 움직인다.

그림 1. 시간 0의 초기 상태
철수는 처음에 가장 아래층의 막대기 위에 있다. 철수는 다음 두 조건에 따라 움직일 수 있다.
조건 1) 현재 서 있는 막대기 위에서는 시간이 걸리지 않고 원하는 위치로 이동할 수 있다.
조건 2) 정수 K가 주어진다. 철수가 현재 있는 층에서 위로 최대 K개 층 안에 있는 어떤 막대기의 구간이, 현재 막대기 위의 어떤 위치와 겹치면 철수는 시간이 걸리지 않고 그 위층 막대기로 수직 이동할 수 있다. 구간의 양 끝점에서 만나는 경우도 겹친 것으로 본다.
예를 들어 K=3일 때, 그림 1의 초기 상태에서 철수는 네 번째 층의 막대기로 바로 올라갈 수 있고, 이어서 가장 위층의 막대기로 바로 올라갈 수 있다. 따라서 이 경우 가장 위층에 도달하는 데 걸리는 시간은 0이다.
시간 0의 초기 상태에서 출발해, 철수가 가장 아래층 막대기에서 가장 위층 막대기로 올라가는 데 필요한 최소 시간을 구하시오.
첫째 줄에 층 수 N, 층의 길이 L, 정수 K가 주어진다. 아래층은 1층이고 가장 위층은 N층이다.
다음 N개 줄 중 i번째 줄에는 i층 막대기의 길이 li, 초기 이동 방향 di, 이동 속도 vi가 주어진다. di=0이면 막대기가 처음에 왼쪽 벽에 닿아 있으며 오른쪽으로 움직인다는 뜻이고, di=1이면 처음에 오른쪽 벽에 닿아 있으며 왼쪽으로 움직인다는 뜻이다.
입력은 다음 조건을 만족한다.
첫째 줄에 철수가 가장 아래층 막대기에서 가장 위층 막대기로 올라가는 데 필요한 최소 시간을 출력한다. 절대 오차 또는 상대 오차가 10−5 이하이면 정답으로 인정된다.