Right, D is also correct English. ) Yes, "may have cost" means that we don't know for sure that it did cost (in the past), but we are speculating that it did.
New words, one handy idiom, and a 2-minute quiz — delivered to your inbox to keep your streak alive.