Quem governará o reino?
Você recebe uma árvore genealógica que contém: nome, sexo, data de nascimento, data da morte e uma lista de herdeiros, para cada membro da família. Você pode usar qualquer formato de lista conveniente (aninhado) para representar a árvore. Os exemplos a seguir usarão JSON. Determine quem governará o domínio e em qual ordem. As regras de sucessão são as seguintes:
- Quando um rei morre, o reino vai para o seu filho mais velho, legítimo.
- Se não houver, ele passa para a filha mais velha e legítima.
- Caso o rei não tivesse herdeiros, o reino vai para o irmão do rei legítimo mais velho
- Se não houver irmãos homens, o reino irá para a irmã do rei legítimo mais velho
- Se todos os parentes legítimos estão mortos, o reino vai para o bastardo mais próximo, aplicando as regras acima
- Se nenhum parente legítimo ou bastardo estiver vivo imprimir
LINE EXTINCT
Definimos um filho legítimo como aquele que tem o mesmo nome de "casa" que seu pai.
Exemplos:
Entrada
{}
Resultado
LINE EXTINCT
Entrada
{
"name" : "Maegor",
"house" : "Targaryen",
"birth" : 12,
"death" : 48,
"sex" : "male",
"heirs" : []
}
Resultado 12-48: Maegor, LINE EXTINCT
Entrada
{
"name" : "Jaehaerys",
"house" : "Targaryen",
"birth" : 34,
"death" : 103,
"sex" : "male",
"heirs" : [
{
"name" : "Viserys",
"house" : "Targaryen",
"birth" : 77,
"death" : 129,
"sex" : "male",
"heirs" : []
}
]
}
Resultado 34-103: Jaehaerys, 103-129: Viserys, LINE EXTINCT
Entrada
{
"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" : []
}
]
}
Resultado: 263-299: Eddard, 299-300: Robb, 300-315: Brann, 315-319: Rickon, 319-320: Sansa, 320-350: Arya, 350-384: Jon, LINE EXTINCT
Observe que a saída pode ser formatada da maneira que desejar, seus únicos requisitos são que ela contenha o tempo do reinado e o nome do rei reinante durante esses anos. Eu usei reis da ASOIAF como exemplo demonstrativo, no entanto, o código precisa ser válido para todas as entradas.
Você pode assumir que nenhum gêmeo nascerá.
Este é um desafio de código de golfe, portanto o código mais curto em bytes vence
Boa sorte!!!
In case the king had no sons the realm goes to the oldest legit king's brother. Parece entrar em conflito com o ponto 2 (se nenhum filho legítimo, a filha legítima mais velha é coroada). Você quer dizer em heirsvez de sonsno ponto 3?