Chennai Airport

Added: 2025-09-13 04:09:19

Question Image

Chennai Airport

Answer

✏️ Edit
def min_time(X, S, R, t, segments):
    all_segments = []
    last = 0

    # Add segments including gaps between walkways
    for start, end, w in segments:
        if start > last:
            all_segments.append((last, start, 0))
        all_segments.append((start, end, w))
        last = end
    if last < X:
        all_segments.append((last, X, 0))

    detailed_segments = []
    for start, end, w in all_segments:
        length = end - start
        total_speed = S + w
        detailed_segments.append((total_speed, length, w))

    # Sort by total_speed ascending to use running time optimally
    detailed_segments.sort()

    total_time = 0.0
    remaining_run_time = t

    for total_speed, length, w in detailed_segments:
        if remaining_run_time > 0:
            run_speed = R + w
            time_to_run_entire_segment = length / run_speed
            max_distance_run = remaining_run_time * run_speed

            if max_distance_run >= length:
                total_time += time_to_run_entire_segment
                remaining_run_time -= time_to_run_entire_segment
            else:
                distance_run = max_distance_run
                distance_walk = length - distance_run
                total_time += remaining_run_time
                total_time += distance_walk / total_speed
                remaining_run_time = 0
        else:
            total_time += length / total_speed

    return round(total_time, 3)


def main():
    # Read first line of inputs
    X, S, R, t, N = map(int, input("Enter X S R t N: ").split())

    segments = []
    print("Enter the segments (Bi Ei Wi):")
    for _ in range(N):
        Bi, Ei, Wi = map(int, input().split())
        segments.append((Bi, Ei, Wi))

    result = min_time(X, S, R, t, segments)
    print(f"{result:.3f}")


if __name__ == "__main__":
    main()