Live Programming
시간 제한5초메모리 제한512 MB
총 길이가 T를 넘지 않도록 곡들을 골라 순서를 정해, 기본 만족도의 합에서 연속한 두 곡의 특징값 차이의 제곱을 뺀 값을 최대로 만든다.
문제
일본의 유명 아이돌 그룹 JAG48이 다음 라이브 공연의 프로그램을 짜려고 한다. 이들은 개의 서로 다른 곡 , , ..., 을 갖고 있다. 각 곡은 세 정수 , , 로 표현된다. 는 의 길이, 는 를 공연했을 때 관객이 얻는 기본 만족 포인트, 는 관객의 만족도에 영향을 주는 의 특징값이다. 라이브 공연에서 JAG48은 개의 곡 중에서 (최소 한 곡 이상) 몇 곡이든 공연할 수 있다. 단, 고른 곡들의 총 길이가 공연 길이 를 넘으면 안 된다. 곡의 순서는 마음대로 정할 수 있지만 같은 곡을 두 번 이상 공연할 수는 없다.
이 공연의 목표는 관객이 얻는 총 만족 포인트를 최대로 만드는 것이다. 각 곡의 기본 만족 포인트 외에도, 연속해서 공연된 두 곡의 특징값 차이가 총 만족 포인트에 영향을 준다. 차이가 없으면 관객은 편안함을 느낀다. 하지만 차이가 클수록 관객은 더 답답함을 느낀다.
따라서 총 만족 포인트는 다음과 같이 계산된다.
- 가 라이브 공연의 첫 곡이면, 를 공연한 직후의 총 만족 포인트는 이다.
- 가 두 번째 이후의 곡이고 바로 다음에 공연되면, 와 가 다를수록 관객이 답답함을 느끼므로 가 총 만족 포인트에 더해진다.
JAG48이 총 만족 포인트를 최대로 만드는 프로그램을 찾도록 도와주자.
입력
입력은 다음과 같은 형식으로 주어진다.
$N$ $T$
$t_1$ $p_1$ $f_1$
$\ldots$
$t_N$ $p_N$ $f_N$
첫 번째 줄에는 두 정수 과 가 주어진다. 은 사용할 수 있는 곡의 수 (), 는 라이브 공연의 길이 ()이다.
다음 개의 줄에는 곡의 파라미터가 주어진다. 그중 번째 줄에는 의 파라미터인 세 정수가 주어진다. 길이 (), 기본 만족 포인트 (), 특징값 ()이다.
길이가 이하인 곡이 적어도 하나 존재한다고 가정할 수 있다.
출력
라이브 공연에서 관객이 얻을 수 있는 총 만족 포인트의 최댓값을 출력한다.