Guest User

Untitled

a guest
Dec 5th, 2024
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.62 KB | None | 0 0
  1. ordering_rules, page_numbers_to_update =  open(file).read().split("\n\n")
  2.  
  3. def sort_page_number(page_number):
  4.     for rule in ordering_rules.split("\n"):
  5.         first_page, second_page = map(int, rule.split("|"))
  6.         if not (first_page in page_number and second_page in page_number):
  7.             continue
  8.         is_valid_rule = page_number.index(first_page) < page_number.index(second_page)
  9.         if not is_valid_rule:
  10.             # swap the pages
  11.             new_page_number = page_number.copy()
  12.             new_page_number[page_number.index(second_page)] = first_page
  13.             new_page_number[page_number.index(first_page)] = second_page
  14.             page_number = sort_page_number(new_page_number)
  15.     return page_number
  16.  
  17. def is_valid_page_number(page_number):
  18.     for rule in ordering_rules.split("\n"):
  19.         first_page, second_page = map(int, rule.split("|"))
  20.         if first_page in page_number and second_page in page_number:
  21.             is_valid_rule = page_number.index(first_page) < page_number.index(second_page)
  22.             if not is_valid_rule:
  23.                 return False
  24.     return True
  25.  
  26. sorted_pages = []
  27. for page_number_list in page_numbers_to_update.split("\n"):
  28.     page_number = list(map(int, page_number_list.split(",")))
  29.     is_valid = is_valid_page_number(page_number)
  30.     if not is_valid:
  31.         sorted_page_number = sort_page_number(page_number)
  32.         sorted_pages.append(sorted_page_number)
  33.  
  34. total_pages_middles = 0
  35. for sorted_page in sorted_pages:
  36.     middle = len(sorted_page) // 2
  37.     total_pages_middles += sorted_page[middle]
  38.  
  39. print("Total number is ",total_pages_middles)
Advertisement
Add Comment
Please, Sign In to add comment