





from __future__ import annotations





def      lowerCAmelCase_ (       __a	,    __a	,    __a	,    __a	,    __a	,    )     ->		None:







  """simple docstring"""





  lowerCamelCase__:      List[Any]			  =len(__a		)

  # 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(__a		):
    # 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]	,    __a	,    __a	,    )





def      lowerCAmelCase_ (       __a		)     ->		None:







  """simple docstring"""





  lowerCamelCase__:      list[list[str]]			  =[]
  depth_first_search([]	,    []	,    []	,    __a	,    __a		)

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

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


if __name__ == "__main__":
     import doctest

     doctest.testmod()
     n_queens_solution(4)


'''simple docstring'''

import requests

__a: str          =   """https://newsapi.org/v1/articles?source=bbc-news&sortBy=top&apiKey="""
def 			__UpperCamelCase       (   UpperCAmelCase     ):
 # fetching a list of articles in json format
 lowercase__				:    Optional[Any]  =					requests.get(_NEWS_API + bbc_news_api_key     ).json()
 # each article in the list is a dict
 for i, article in enumerate(bbc_news_page['''articles''']		,     1     ):
  print(F"""{i}.) {article['title']}"""     )


if __name__ == "__main__":
  fetch_bbc_news(bbc_news_api_key="""<Your BBC News API key goes here>""")

