마비노기 모바일에서 악기 연주에 흥미를 느낀 당신은, 실제 악기를 배워보고 싶다는 생각이 들었다. 연습을 위해 당신은 총 개의 음표를 차례대로 연주하려고 한다.
곡의 시작 시각을 이라고 할 때, 번째 음표의 정확한 연주 시각은 이다. 하지만 정확한 연주 시각을 맞출 수 없다면, 대신 구간 안에 연주하면 된다. 다시 말해서, 번째 음표의 실제 연주 시각을 라고 하면, 를 만족해야 한다.
또한, 두 음표의 실제 연주 시각 사이 간격은 이상이여야 한다. 즉, 모든 에 대해, 을 만족해야 한다.
이때, 연주 오차는 번째 음표의 정확한 연주 시각 와 실제 연주한 시각 와의 시각 차이의 합 로 정의된다.
음표마다 정확한 연주 시각과 연주 가능한 구간, 그리고 두 음표의 실제 연주 시각 사이의 최소 간격이 주어지면, 연주 오차를 최소화하면서 연주를 하는 프로그램을 작성하라.
첫 줄에 음표의 개수를 나타내는 정수 과 두 음표의 실제 연주 시각 사이의 최소 간격을 나타내는 정수 가 주어진다. ( )
그다음 개의 줄의 번째 줄에는 번째 음표의 연주 가능한 구간 와 정확한 연주 시각 를 나타내는 세 정수가 , , 의 순서로 공백으로 구분되어 주어진다. ()
조건을 만족하는 연주가 불가능하다면 첫 줄에 을 출력한다.
조건을 만족하는 연주가 가능하다면, 첫 줄에 연주 오차의 최솟값을 출력한다. 그다음 줄에 연주 오차를 최소로 하는 개 음표의 실제 연주 시각 을 공백으로 구분하여 출력한다. 답이 여러 개 존재한다면, 그중 하나만 출력한다.
3 1 2 4 6 3 4 6 3 4 6
2 3 4 5
3 1 7 8 9 4 5 6 1 2 3
-1
입력 케이스들은 다음과 같은 종류로 구별되며, 한 종류의 케이스를 다 맞혀야 그 종류에 배정된 점수를 받을 수 있다.
종류 1: 8점
종류 2: 15점
종류 3: 46점
종류 4: 31점
모든 입력 케이스가 주어진다.