def is_safe(report): increasing = True decreasing = True for i in range(len(report) - 1): diff = report[i+1] - report[i] if not (1 <= abs(diff) <= 3): return False if diff > 0: decreasing = False if diff < 0: increasing = False return increasing or decreasing def is_safe_with_removal(report): if is_safe(report): return True for i in range(len(report)): modified_report = report[:i] + report[i+1:] if is_safe(modified_report): return True return False def count_safe_reports(file_path, part_two=False): with open(file_path, 'r') as file: reports = [list(map(int, line.split())) for line in file] safe_count = 0 for report in reports: if part_two: if is_safe_with_removal(report): safe_count += 1 else: if is_safe(report): safe_count += 1 return safe_count file = "input.txt" # Part One result1 = count_safe_reports(file, part_two=False) print(result1) # Part Two result2 = count_safe_reports(file, part_two=True) print(result2)