An efficient dynamic programming algorithm for a special case of the capacitated lot-sizing problem