import sys
def find_floor_and_ceil(lst, N):
floorval = -sys.maxsize - 1 # Equivalent to INT_MIN
ceilval = sys.maxsize # Equivalent to INT_MAX
for num in lst:
if num <= N and num > floorval:
floorval = num # Update floorval if num is closer to N
if num >= N and num < ceilval:
ceilval = num # Update ceilval if num is closer to N
# If no valid floorval or ceilval is found, set them to a special value
if floorval == -sys.maxsize - 1:
floorval = -1 # No floorval exists
if ceilval == sys.maxsize:
ceilval = -1 # No ceilval exists
return floorval, ceilval
lst = [4, 10, 8, 2, 6, 9, 1]
N = 5 # Value to find floor and ceil for
floorval, ceilval = find_floor_and_ceil(lst, N)
print("floor:", "None" if floorval == -1 else floorval)
print("ceil:", "None" if ceilval == -1 else ceilval)
'''
run:
floor: 4
ceil: 6
'''