




'''simple docstring'''



import math

import qiskit
from qiskit import Aer, ClassicalRegister, QuantumCircuit, QuantumRegister, execute







def 	_UpperCamelCase       (_lowerCamelCase							:   int = 1      ,		_lowerCamelCase							:   int = 1		)->      qiskit.result.counts.Counts:




     '''simple docstring'''





     if isinstance(_lowerCamelCase      ,		_lowerCamelCase		) or isinstance(_lowerCamelCase      ,		_lowerCamelCase		):
          raise TypeError('''inputs must be integers.'''		)
     if (bit_a < 0) or (bit_a < 0):
          raise ValueError('''inputs must be positive.'''		)
     if (math.floor(_lowerCamelCase		) != bit_a) or (math.floor(_lowerCamelCase		) != bit_a):
          raise ValueError('''inputs must be exact integers.'''		)
     if (bit_a > 1) or (bit_a > 1):
          raise ValueError('''inputs must be less or equal to 1.'''		)

     # build registers
     __snake_case			    =     QuantumRegister(2      ,		'''qr'''		)
     __snake_case			    =     ClassicalRegister(2      ,		'''cr'''		)

     __snake_case			    =     QuantumCircuit(_lowerCamelCase      ,		_lowerCamelCase		)

     # entanglement the qubits
     quantum_circuit.h(1		)
     quantum_circuit.cx(1      ,		0		)

     # send the information
     __snake_case			    =     str(_lowerCamelCase		) + str(_lowerCamelCase		)

     if c_information == "11":
          quantum_circuit.x(1		)
          quantum_circuit.z(1		)
     elif c_information == "10":
          quantum_circuit.z(1		)
     elif c_information == "01":
          quantum_circuit.x(1		)
     else:
          quantum_circuit.i(1		)

     # unentangled the circuit
     quantum_circuit.cx(1      ,		0		)
     quantum_circuit.h(1		)

     # measure the circuit
     quantum_circuit.measure(_lowerCamelCase      ,		_lowerCamelCase		)

     __snake_case			    =     Aer.get_backend('''aer_simulator'''		)
     __snake_case			    =     execute(_lowerCamelCase      ,		_lowerCamelCase      ,		shots=10_00		)

     return job.result().get_counts(_lowerCamelCase		)


if __name__ == "__main__":
     print(F"""Counts for classical state send: {superdense_coding(1,1)}""")












'''simple docstring'''



from __future__ import annotations







def 	_UpperCamelCase       (_lowerCamelCase							:   int      ,		_lowerCamelCase							:   list[int]      ,		_lowerCamelCase							:   list[int]      ,		_lowerCamelCase							:   int		)->      int:




     '''simple docstring'''





     if counter == 0 or capacity == 0:
          return 0

     # If weight of the nth item is more than Knapsack of capacity,
     #   then this item cannot be included in the optimal solution,
     # else return the maximum of two cases:
     #   (1) nth item included
     #   (2) not included
     if weights[counter - 1] > capacity:
          return knapsack(_lowerCamelCase      ,		_lowerCamelCase      ,		_lowerCamelCase      ,		counter - 1		)
     else:
          __snake_case			    =     capacity - weights[counter - 1]
          __snake_case			    =     values[counter - 1] + knapsack(
              _lowerCamelCase      ,		_lowerCamelCase      ,		_lowerCamelCase      ,		counter - 1		)
          __snake_case			    =     knapsack(_lowerCamelCase      ,		_lowerCamelCase      ,		_lowerCamelCase      ,		counter - 1		)
          return max(_lowerCamelCase      ,		_lowerCamelCase		)


if __name__ == "__main__":
     import doctest

     doctest.testmod()






