When you buy 2 things for the price of 1, you get each thing at 1/2 price. Similarly, when you buy 20 things for the price of 15, you get each thing at 15/20 = 3/4 of its normal price.
So in this question, the buyer gets two separate discounts - because he gets 20 for the price of 15, that reduces the overall price to 3/4 of its original value. And the buyer gets a further 20% cash discount, which reduces the price again by 1/5, so to 4/5 of its previous value. So combining the two discounts, the buyer gets each item at (3/4)(4/5) = 3/5 of its original sales price. If
s is the original sales price, the buyer buys each item for (3/5)
s dollars. We know this is 20% more than what the seller paid for each item, so it is 6/5 of what the seller paid. If the seller paid
p dollars, then
(3/5)s = (6/5)p
s = 2p
and the sales price is double the purchase price, and the markup is 100%.
You can also solve by just inventing a simple number for the original sales price, though I find this a bit more confusing than the more algebraic solution above. Say the original sales price is $10. We know the seller gives a 20% discount, so the buyer is paying $8 for the 15 items, or $120 in total. But then the seller offers 20 items instead of 15, so the buyer pays 120/20 = $6 per item. The seller still turns a 20% profit, and since $6 is 20% more than $5, the seller must have bought each item for $5. Since the number we chose, $10, for the sale price is 100% bigger than $5, then 100% is the markup.