Кто будет править миром?
Вам предоставляется семейное древо, которое содержит: имя, пол, дату рождения, дату смерти и список наследников для каждого члена семьи. Вы можете использовать любой удобный (вложенный) формат списка для представления дерева. В следующих примерах будет использоваться 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?