"""simple docstring"""


from __future__ import annotations






def     __UpperCAmelCase					(			lowercase   ,lowercase   ,lowercase   ,lowercase   ,lowercase   ,):







  """simple docstring"""
  _UpperCAmelCase						 =      len(UpperCAmelCase__		)

  # If row is equal to the size of the board it means there are a queen in each row in
  # the current board (possible_board)
  if row == n:
    # We convert the variable possible_board that looks like this: [1, 3, 0, 2] to
    # this: ['. Q . . ', '. . . Q ', 'Q . . . ', '. . Q . ']
    boards.append([""". """ * i + """Q """ + """. """ * (n - 1 - i) for i in possible_board]		)
    return

  # We iterate each column in the row to find all possible results in each row
  for col in range(UpperCAmelCase__		):
    # We apply that we learned previously. First we check that in the current board
    # (possible_board) there are not other same value because if there is it means
    # that there are a collision in vertical. Then we apply the two formulas we
    # learned before:
    #
    # 45º: y - x = b or 45: row - col = b
    # 135º: y + x = b or row + col = b.
    #
    # And we verify if the results of this two formulas not exist in their variables
    # respectively.  (diagonal_right_collisions, diagonal_left_collisions)
    #
    # If any or these are True it means there is a collision so we continue to the
    # next value in the for loop.
    if (
        col in possible_board
        or row - col in diagonal_right_collisions
        or row + col in diagonal_left_collisions
    ):
      continue

    # If it is False we call dfs function again and we update the inputs
    depth_first_search(
        [*possible_board, col]   ,[*diagonal_right_collisions, row - col]   ,[*diagonal_left_collisions, row + col]   ,UpperCAmelCase__   ,UpperCAmelCase__   ,)






def     __UpperCAmelCase					(			lowercase		):







  """simple docstring"""
  _UpperCAmelCase						 =      []
  depth_first_search([]   ,[]   ,[]   ,UpperCAmelCase__   ,UpperCAmelCase__		)

  # Print all the boards
  for board in boards:
    for column in board:
      print(UpperCAmelCase__		)
    print(""""""		)

  print(len(UpperCAmelCase__		)   ,"""solutions were found."""		)


if __name__ == "__main__":
    import doctest

    doctest.testmod()
    n_queens_solution(4)

"""simple docstring"""


import datasets


UpperCAmelCase__  		=						"""\
@InProceedings{conneau2018xnli,
  author = \"Conneau, Alexis
                 and Rinott, Ruty
                 and Lample, Guillaume
                 and Williams, Adina
                 and Bowman, Samuel R.
                 and Schwenk, Holger
                 and Stoyanov, Veselin\",
  title = \"XNLI: Evaluating Cross-lingual Sentence Representations\",
  booktitle = \"Proceedings of the 2018 Conference on Empirical Methods
               in Natural Language Processing\",
  year = \"2018\",
  publisher = \"Association for Computational Linguistics\",
  location = \"Brussels, Belgium\",
}
"""

UpperCAmelCase__  		=						"""\
XNLI is a subset of a few thousand examples from MNLI which has been translated
into a 14 different languages (some low-ish resource). As with MNLI, the goal is
to predict textual entailment (does sentence A imply/contradict/neither sentence
B) and is a classification task (given two sentences, predict one of three
labels).
"""

UpperCAmelCase__  		=						"""
Computes XNLI score which is just simple accuracy.
Args:
    predictions: Predicted labels.
    references: Ground truth labels.
Returns:
    'accuracy': accuracy
Examples:

    >>> predictions = [0, 1]
    >>> references = [0, 1]
    >>> xnli_metric = datasets.load_metric(\"xnli\")
    >>> results = xnli_metric.compute(predictions=predictions, references=references)
    >>> print(results)
    {'accuracy': 1.0}
"""






def     __UpperCAmelCase					(			lowercase   ,lowercase		):







  """simple docstring"""
  return (preds == labels).mean()


@datasets.utils.file_utils.add_start_docstrings(_DESCRIPTION	,							_KWARGS_DESCRIPTION   )
class        a				(		datasets.Metric   ):


    def      lowerCAmelCase_  (					self	:  Union[str, Any]					):
      return datasets.MetricInfo(
          description=_DESCRIPTION   ,				citation=_CITATION   ,				inputs_description=_KWARGS_DESCRIPTION   ,				features=datasets.Features(
              {
                  """predictions""": datasets.Value("""int64""" if self.config_name != """sts-b""" else """float32"""					),
                  """references""": datasets.Value("""int64""" if self.config_name != """sts-b""" else """float32"""					),
              }					)   ,				codebase_urls=[]   ,				reference_urls=[]   ,				format="""numpy"""   ,				)


    def      lowerCAmelCase_  (					self	:  List[str]   ,				__lowerCAmelCase	:  int   ,				__lowerCAmelCase	:  Any					):
      return {"accuracy": simple_accuracy(__lowerCAmelCase   ,				__lowerCAmelCase					)}
