slope_trick<long long> f; // f(x) := 0 O(1)
f.add_const(b); // f(x) += b O(1)
f.add_relu(a); // f(x) += max(x - a, 0) O(log N)
f.add_irelu(a); // f(x) += max(a - x, 0) O(log N)
f.add_abs(a); // f(x) += |x - a| O(log N)
f.move_left_curve(w); // f(x) <- min_{0 <= y <= w} f(x + y), w >= 0 O(1)
f.move_right_curve(w); // f(x) <- min_{0 <= y <= w} f(x - y), w >= 0 O(1)
f.translate(dx); // f(x) <- f(x - dx) O(1)
f.merge_destructive(g); // f(x) += g(x), g(x) broken O(min(N_f, N_g) log (N_f + N_g))
auto v = f.get_min().min; // v = min_x f(x) O(1)
y = f.get_destructive(x); // y = f(x), f(x) broken O(log N)