Хто буде правити цариною?
Вам надається генеалогічне дерево, яке містить: ім’я, стать, дату народження, дату смерті та список спадкоємців для кожного члена сім’ї. Ви можете використовувати будь-який зручний (вкладений) формат списку для представлення дерева. У наступних прикладах буде використовувати JSON. Визначте, хто буде керувати царством і в якому порядку. Правила правонаступництва такі:
- Коли цар помирає, царство переходить до своєї найстаршої законної дитини-чоловіка.
- Якщо такої немає, вона переходить до найстаршої законної жіночої дитини.
- Якщо король не мав спадкоємців, царство переходить до найстаршого брата законного короля
- Якщо немає братів-чоловіків, царство перейде до найстаршої сестри законної королі
- Якщо всі законні родичі мертві, царство прямує до найближчого сволота, застосовуючи вищезазначені правила
- Якщо жодних легітимних чи панських родичів немає живого друку
LINE EXTINCT
Ми визначаємо законного сина як того, хто має те саме "домашнє" ім'я, як і його батько.
Приклади:
Вхідні дані
{}
Вихід
LINE EXTINCT
Вхідні дані
{
"name" : "Maegor",
"house" : "Targaryen",
"birth" : 12,
"death" : 48,
"sex" : "male",
"heirs" : []
}
Вихід 12-48: Maegor, LINE EXTINCT
Вхідні дані
{
"name" : "Jaehaerys",
"house" : "Targaryen",
"birth" : 34,
"death" : 103,
"sex" : "male",
"heirs" : [
{
"name" : "Viserys",
"house" : "Targaryen",
"birth" : 77,
"death" : 129,
"sex" : "male",
"heirs" : []
}
]
}
Вихід 34-103: Jaehaerys, 103-129: Viserys, LINE EXTINCT
Вхідні дані
{
"name" : "Eddard",
"house" : "Stark",
"birth" : 263,
"death" : 299,
"sex" : "male",
"heirs" : [
{
"name" : "Robb",
"house" : "Stark",
"birth" : 283,
"death" : 300,
"sex" : "male",
"heirs" : []
},
{
"name" : "Jon",
"house" : "Snow",
"birth" : 284,
"death" : 384,
"sex" : "male",
"heirs" : []
},
{
"name" : "Sansa",
"house" : "Stark",
"birth" : 286,
"death" : 320,
"sex" : "female",
"heirs" : []
},
{
"name" : "Arya",
"house" : "Stark",
"birth" : 289,
"death" : 350,
"sex" : "female",
"heirs" : []
},
{
"name" : "Brann",
"house" : "Stark",
"birth" : 290,
"death" : 315,
"sex" : "male",
"heirs" : []
},
{
"name" : "Rickon",
"house" : "Stark",
"birth" : 295,
"death" : 319,
"sex" : "male",
"heirs" : []
}
]
}
Вихід: 263-299: Eddard, 299-300: Robb, 300-315: Brann, 315-319: Rickon, 319-320: Sansa, 320-350: Arya, 350-384: Jon, LINE EXTINCT
Зауважте, що вихід може бути відформатований будь-яким бажаним способом, його єдиними вимогами є те, щоб він містив час правління та ім'я правлячого короля протягом цих років. Я використовував королів з ASOIAF як показовий приклад, однак код повинен бути дійсним для всіх вхідних даних.
Ви можете припустити, що близнюки не народиться.
Це виклик для гольфу з кодом, тому виграє найкоротший код у байтах
Удачі!!!
In case the king had no sons the realm goes to the oldest legit king's brother. Здається, це суперечить пункту 2 (Якщо немає законного сина, то вінчається найстарша законна дочка). Ви маєте на увазі heirsзамість sonsпункту 3?