Directly quoting from Peterson & Davie (even the example in definitions) :
Split Horizon:
The idea is that when a node sends a routing update to its neighbors, it does not send those routes it learned from each neighbor back to that neighbor. For example, if B has the route (E, 2, A) in its table, then it knows it must have learned this route from A, and so whenever B sends a routing update to A, it does not include the route (E, 2) in that update.
Split Horizon with poison reverse:
A stronger variation of split horizon. B actually sends that route back to A, but it puts negative information in the route to ensure that A will not eventually use B to get to E. For example, B sends the route (E, ∞) to A.
So in this question, after stabilization forwarding table for A will be [triplets in form(Destination, cost, next hop) ] :
1. (A, 0, -)
2. (B, 5, B)
3. (C, 4, C)
4. (D, 7, B)
Now entry no. 2 and 4 indicate that A learned these routes from B itself, so when following split horizon, A doesn't forward these entries to B. Hence the distance vector advertised to B after stabilization will consist of only entry no. 1 and 3