/* -*- coding: utf-8 -*- * * 139.cc: No.139 交差点 - yukicoder */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; /* constant */ /* typedef */ /* global variables */ /* subroutines */ inline bool is_red(int t, int ti) { return ((t / ti) & 1) != 0; } /* main */ int main() { int n, l; cin >> n >> l; int pos = 0, t = 0; for (int i = 0; i < n; i++) { int xi, wi, ti; cin >> xi >> wi >> ti; t += xi - pos; pos = xi; if (is_red(t, ti) || is_red(t + wi, ti)) { int ti2 = ti * 2; t = (t + ti2 - 1) / ti2 * ti2; } t += wi; pos += wi; } printf("%d\n", t + l - pos); return 0; }