I have a different opinion on this old question : According to me, answer is B and D.
Let me make my points :
Throughput = #processes executed per unit time. If context switch time = 0; then no matter what algorithm you use, throughput is going to be same. Now, if CS time matters, throughput will be higher in non-preemptive algorithms.(as less #CS will happen here). So that rules out HRRN and RR as you may have more CS resulting in more time to complete all the n tasks, thus low throughput compared to non-preemptive algorithms.
But, the rest 2 are non-preemptive : SJF and FCFS. Take any example and draw the gnatt for it, your end time will always be the same as #CS are same. Thus throughput will be same in all non-preemptive algorithms : (CT of last process – AT of first process) / n ;