If D can get packet from C and B at a time, then D will accept packet from C and discard B.
But D get packet from B due to shortest distance from S, at that time C is not transmitting any packet to D. So accept packet from B instead of waiting packet from C.