What is the amortized time complexity of a single push operation on a dynamic array that doubles in size when full?