
"""simple docstring"""





_a								=						{}



def  lowerCamelCase__						(     __snake_case,	__snake_case,	__snake_case      )				->						int:


					"""simple docstring"""





					if late == 3 or absent == 2:
										return 0

					# if we have no days left, and have not failed any other rules,
					# we have a prize string
					if days == 0:
										return 1

					# No easy solution, so now we need to do the recursive calculation

					# First, check if the combination is already in the cache, and
					# if yes, return the stored value from there since we already
					# know the number of possible prize strings from this point on
					_UpperCamelCase									=    (days, absent, late)
					if key in cache:
										return cache[key]

					# now we calculate the three possible ways that can unfold from
					# this point on, depending on our attendance today

					# 1) if we are late (but not absent), the "absent" counter stays as
					# it is, but the "late" counter increases by one
					_UpperCamelCase									=    _calculate(days - 1,	__snake_case,	late + 1      )

					# 2) if we are absent, the "absent" counter increases by 1, and the
					# "late" counter resets to 0
					_UpperCamelCase									=    _calculate(days - 1,	absent + 1,	0      )

					# 3) if we are on time, this resets the "late" counter and keeps the
					# absent counter
					_UpperCamelCase									=    _calculate(days - 1,	__snake_case,	0      )

					_UpperCamelCase									=    state_late + state_absent + state_ontime

					_UpperCamelCase									=    prizestrings
					return prizestrings



def  lowerCamelCase__						(     __snake_case = 30      )				->						int:


					"""simple docstring"""





					return _calculate(__snake_case,	absent=0,	late=0      )


if __name__ == "__main__":
				print(solution())










'''simple docstring'''
import pytest
import requests

from datasets.utils.file_utils import http_head

from .utils import OfflineSimulationMode, RequestWouldHangIndefinitelyError, offline







@pytest.mark.integration
def       a_				(	):
							with offline(OfflineSimulationMode.CONNECTION_TIMES_OUT ):
														with pytest.raises(UpperCamelCase_ ):
																					requests.request("GET"						,  "https://huggingface.co" )
														with pytest.raises(requests.exceptions.ConnectTimeout ):
																					requests.request("GET"						,  "https://huggingface.co"						,  timeout=1.0 )







@pytest.mark.integration
def       a_				(	):
							with offline(OfflineSimulationMode.CONNECTION_FAILS ):
														with pytest.raises(requests.exceptions.ConnectionError ):
																					requests.request("GET"						,  "https://huggingface.co" )







def       a_				(	):
							with offline(OfflineSimulationMode.HF_DATASETS_OFFLINE_SET_TO_1 ):
														with pytest.raises(UpperCamelCase_ ):
																					http_head("https://huggingface.co" )





