fork download
  1. N = int(input())
  2. zodiac = ["Ox", "Tiger", "Rabbit", "Dragon", "Snake", "Horse", "Goat", "Monkey", "Rooster", "Dog", "Pig", "Rat"]
  3. years = {}
  4. def getZodiac(year):
  5. return zodiac[(year - 2021) % 12]
  6.  
  7. years["Bessie"] = 2021
  8. for i in range(N):
  9. line = input()
  10. tokens = line.split()
  11. name2 = tokens[0]
  12. offset = tokens[3]
  13. target = tokens[4]
  14. name1 = tokens[-1]
  15. cur = years[name1]
  16. # can also do name2, _, _, offset, target, _, _, name1 = tokens
  17. if offset == "previous":
  18. cur -= 1
  19. while getZodiac(cur) != target:
  20. cur -= 1
  21. else:
  22. cur+= 1
  23. while getZodiac(cur) != target:
  24. cur += 1
  25. years[name2] = cur
  26.  
  27. print(abs(years["Bessie"] - years["Elsie"]))
  28.  
  29.  
Success #stdin #stdout 0.02s 9192KB
stdin
4
Mildred born in previous Dragon year from Bessie
Gretta born in previous Monkey year from Mildred
Elsie born in next Ox year from Gretta
Paulina born in next Dog year from Bessie
stdout
12