



import qiskit

def    lowerCamelCase_(lowerCamelCase_    ,   lowerCamelCase_    ) ->       qiskit.result.counts.Counts:
						UpperCAmelCase         =     qiskit.Aer.get_backend("aer_simulator"    )

						UpperCAmelCase         =     qiskit.QuantumCircuit(4    ,   2    )
						# encode inputs in qubits 0 and 1
						if bita == 1:
												qc_ha.x(0    )
						if bita == 1:
												qc_ha.x(1    )
						qc_ha.barrier()

						# use cnots to write XOR of the inputs on qubit2
						qc_ha.cx(0    ,   2    )
						qc_ha.cx(1    ,   2    )

						# use ccx / toffoli gate to write AND of the inputs on qubit3
						qc_ha.ccx(0    ,   1    ,   3    )
						qc_ha.barrier()

						# extract outputs
						qc_ha.measure(2    ,   0    )  # extract XOR value
						qc_ha.measure(3    ,   1    )  # extract AND value

						# Execute the circuit on the qasm simulator
						UpperCAmelCase         =     qiskit.execute(lowerCamelCase_    ,   lowerCamelCase_    ,   shots=1_000    )

						# Return the histogram data of the results of the experiment
						return job.result().get_counts(lowerCamelCase_    )


if __name__ == "__main__":
		__lowerCamelCase     :							List[Any]  							=				half_adder(1, 1)
		print(F'''Half Adder Output Qubit Counts: {counts}''')








from __future__ import annotations

def    lowerCamelCase_(lowerCamelCase_    ) ->       int:
						UpperCAmelCase         =     len(lowerCamelCase_    ) // 2

						# choose the middle 3 elements
						UpperCAmelCase         =     lst[m - 1 : m + 2]

						# if middle element is peak
						if three[1] > three[0] and three[1] > three[2]:
												return three[1]

						# if increasing, recurse on right
						elif three[0] < three[2]:
												if len(lst[:m]    ) == 2:
																		m -= 1
												return peak(lst[m:]    )

						# decreasing
						else:
												if len(lst[:m]    ) == 2:
																		m += 1
												return peak(lst[:m]    )


if __name__ == "__main__":
		import doctest

		doctest.testmod()



