#include #define NMAX 100 using namespace std; int main() { int N, L, A = 0, P = 0;; cin >> N >> L; int X[NMAX], W[NMAX], T[NMAX]; for (int i = 0; i < N; ++i) { cin >> X[i] >> W[i] >> T[i]; //交差点前まで進む A += X[i] - P; P = X[i] + W[i]; //交差点判定 int Tt = A / T[i]; if (Tt & 1) //既に赤信号なので待つ A = T[i] * (Tt + 1); else //青のうちに渡れるか if (T[i] * (Tt + 1) >= A + W[i]) //渡れる A += W[i]; else //渡れない 一生渡れない場合?知らんがな A = T[i] * (Tt + 2) + W[i]; } A += L - P; cout << A; return 0; }