Three cars, A, B and C move towards north in a particular straight track (consider the length of the tract infinite). Another car D comes from a certain distance towards south. The car A meets B at 8 am., meets C at 9 am. and crosses D at 10 am. Consequently, D crosses B at 12 pm. and crosses C at 02 pm. Find the exact time when B crossed C. (Consider cars as point masses with constant velocity, refer to the following image as their initial position)

One trivial solution to this problem done by me is to draw a distance time graph of these cars and take the meeting point of any two lines for two different cars as their meeting time in respect to the time axis. (I took the origin as 8 am. and plotted the given meeting points to find the meeting points of the graph of car B and car C). My answer was 10:40 am, and it seems to be correct. But I want a stronger logic and proof (may be algebraic). Let's see a newer proof can arise or not!

Since we're only interested in the time at which events happen, we may as well analyze things from car D's point of view, which is to say, may may as well assume that car D is stationary. Since from the moment that car A meets car B it takes A $2$ hours to reach D whereas it takes B $4$ hours, we infer that car A is traveling twice as fast as B (in car D's reference frame). Likewise, from the moment car A meets car C, it takes A only $1$ hour to reach D whereas it takes C $5$ hours, so we can infer that car is is traveling five times as fast as C.
From this we conclude that car B is traveling two and half times as fast as car C. Put differently, car C is traveling at 40% of car B's speed.
Now let's run time backwards, with C departing from D and then B departing from D two hours "later." In the time it takes B to catch up (or should we say "down"?) with C, C will have traveled 40% as far as B, which means that in the two hours it spent on the road alone, it must have traveled 60% of the total distance. There are six 20-minute intervals in two hours, so car C travels 10% of the total distance every 20 minutes, which means it's been on the road for 200 minutes when B catches it. Keeping in mind that C "started" at 2pm and we're running time backwards, 200 minutes (i.e., 3 hours and 20 minutes) translates into 10:40am.