
"""simple docstring"""




def 							_lowerCamelCase			(			__a     ):
		return [
		    {
		        0: [1, 2],
		        1: [0, 2],
		        2: [0, 1, 3, 5],
		        3: [2, 4],
		        4: [3],
		        5: [2, 6, 8],
		        6: [5, 7],
		        7: [6, 8],
		        8: [5, 7],
		    },
		    {
		        0: [6],
		        1: [9],
		        2: [4, 5],
		        3: [4],
		        4: [2, 3],
		        5: [2],
		        6: [0, 7],
		        7: [6],
		        8: [],
		        9: [1],
		    },
		    {
		        0: [4],
		        1: [6],
		        2: [],
		        3: [5, 6, 7],
		        4: [0, 6],
		        5: [3, 8, 9],
		        6: [1, 3, 4, 7],
		        7: [3, 6, 8, 9],
		        8: [5, 7],
		        9: [5, 7],
		    },
		    {
		        0: [1, 3],
		        1: [0, 2, 4],
		        2: [1, 3, 4],
		        3: [0, 2, 4],
		        4: [1, 2, 3],
		    },
		][index]



def 							_lowerCamelCase			(			__a     ):
		SCREAMING_SNAKE_CASE_    			=			0
		SCREAMING_SNAKE_CASE_    			=			len(__a     )  # No of vertices in graph
		SCREAMING_SNAKE_CASE_    			=			[0] * n
		SCREAMING_SNAKE_CASE_    			=			[False] * n

		def dfs(__a,				__a,				__a,				__a     ):
				SCREAMING_SNAKE_CASE_    			=			True
				SCREAMING_SNAKE_CASE_    			=			id_
				id_ += 1
				for to in graph[at]:
						if to == parent:
								pass
						elif not visited[to]:
								dfs(__a,				__a,				__a,				id_     )
								SCREAMING_SNAKE_CASE_    			=			min(low[at],				low[to]     )
								if id_ <= low[to]:
										bridges.append((at, to) if at < to else (to, at)     )
						else:
								# This edge is a back edge and cannot be a bridge
								SCREAMING_SNAKE_CASE_    			=			min(low[at],				low[to]     )

		SCREAMING_SNAKE_CASE_    			=			[]
		for i in range(__a     ):
				if not visited[i]:
						dfs(__a,				-1,				__a,				id_     )
		return bridges


if __name__ == "__main__":
						import doctest

						doctest.testmod()

"""simple docstring"""




from __future__ import annotations

from collections.abc import Callable



def 							_lowerCamelCase			(			__a,				__a,				__a,				__a = 100,				):
		SCREAMING_SNAKE_CASE_    			=			x_start
		SCREAMING_SNAKE_CASE_    			=			fnc(__a     )
		SCREAMING_SNAKE_CASE_    			=			0.0
		for _ in range(__a     ):
				# Approximates small segments of curve as linear and solve
				# for trapezoidal area
				SCREAMING_SNAKE_CASE_    			=			(x_end - x_start) / steps + xa
				SCREAMING_SNAKE_CASE_    			=			fnc(__a     )
				area += abs(fxa + fxa     ) * (xa - xa) / 2
				# Increment step
				SCREAMING_SNAKE_CASE_    			=			xa
				SCREAMING_SNAKE_CASE_    			=			fxa
		return area


if __name__ == "__main__":



						def 							_lowerCamelCase			(			__a     ):
								return x**3 + x**2

						print('f(x) = x^3 + x^2')
						print('The area between the curve, x = -5, x = 5 and the x axis is:')
						lowerCAmelCase__				=					10
						while i <= 100000:
												print(f'''with {i} steps: {trapezoidal_area(f, -5, 5, i)}''')
												i *= 10