

"""simple docstring"""




from collections import Counter
from functools import total_ordering

from data_structures.heap.heap import Heap


@total_ordering
class 		_A							:





      def __init__(	self     ,    SCREAMING_SNAKE_CASE__     ,    SCREAMING_SNAKE_CASE__		) ->       None:
         lowerCamelCase__						       =      word
         lowerCamelCase__						       =      count





      def __eq__(	self     ,    SCREAMING_SNAKE_CASE__		) ->       bool:
         if not isinstance(SCREAMING_SNAKE_CASE__     ,    SCREAMING_SNAKE_CASE__		):
            return NotImplemented
         return self.count == other.count





      def __lt__(	self     ,    SCREAMING_SNAKE_CASE__		) ->       bool:
         if not isinstance(SCREAMING_SNAKE_CASE__     ,    SCREAMING_SNAKE_CASE__		):
            return NotImplemented
         return self.count < other.count






def 						UpperCAmelCase__ (					A__						,     A__ )   ->   list[str]:




   """simple docstring"""
   lowerCamelCase__						       =      Heap()
   lowerCamelCase__						       =      Counter(A__ )
   heap.build_max_heap(
       [WordCount(A__						,     A__ ) for word, count in count_by_word.items()] )
   return [heap.extract_max().word for _ in range(min(A__						,     len(A__ ) ) )]


if __name__ == "__main__":
     import doctest

     doctest.testmod()







"""simple docstring"""




import math

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



def 						UpperCAmelCase__ (					A__ = 1						,     A__ = 1 )   ->   qiskit.result.counts.Counts:




   """simple docstring"""
   if isinstance(A__						,     A__ ) or isinstance(A__						,     A__ ):
      raise TypeError("inputs must be integers." )
   if (bit_a < 0) or (bit_a < 0):
      raise ValueError("inputs must be positive." )
   if (math.floor(A__ ) != bit_a) or (math.floor(A__ ) != 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
   lowerCamelCase__						       =      QuantumRegister(2						,     "qr" )
   lowerCamelCase__						       =      ClassicalRegister(2						,     "cr" )

   lowerCamelCase__						       =      QuantumCircuit(A__						,     A__ )

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

   # send the information
   lowerCamelCase__						       =      str(A__ ) + str(A__ )

   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(A__						,     A__ )

   lowerCamelCase__						       =      Aer.get_backend("aer_simulator" )
   lowerCamelCase__						       =      execute(A__						,     A__						,     shots=1000 )

   return job.result().get_counts(A__ )


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




