Siapa yang akan memerintah kerajaan?
Anda diberi silsilah keluarga yang berisi: nama, jenis kelamin, tanggal lahir, tanggal kematian dan daftar ahli waris, untuk setiap anggota keluarga. Anda dapat menggunakan format daftar yang mudah digunakan (bersarang) untuk mewakili pohon. Contoh berikut akan menggunakan JSON. Tentukan siapa yang akan memerintah wilayah dan urutannya. Aturan suksesi adalah sebagai berikut:
- Ketika seorang raja meninggal dunia pergi ke anak laki-laki tertua yang sah.
- Jika tidak ada, maka akan diteruskan ke anak perempuan tertua yang sah.
- Jika raja tidak memiliki ahli waris, kerajaan jatuh ke tangan saudara lelaki tertua yang sah
- Jika tidak ada saudara laki-laki, kerajaan akan pergi ke saudara tertua raja yang sah
- Jika semua kerabat yang sah mati dunia akan pergi ke bajingan terdekat, menerapkan aturan di atas
- Jika tidak ada kerabat sah atau bajingan yang masih hidup dicetak
LINE EXTINCT
Kami mendefinisikan anak yang sah sebagai orang yang memiliki nama "rumah" yang sama dengan ayahnya.
Contoh:
Memasukkan
{}
Keluaran
LINE EXTINCT
Memasukkan
{
"name" : "Maegor",
"house" : "Targaryen",
"birth" : 12,
"death" : 48,
"sex" : "male",
"heirs" : []
}
Keluaran 12-48: Maegor, LINE EXTINCT
Memasukkan
{
"name" : "Jaehaerys",
"house" : "Targaryen",
"birth" : 34,
"death" : 103,
"sex" : "male",
"heirs" : [
{
"name" : "Viserys",
"house" : "Targaryen",
"birth" : 77,
"death" : 129,
"sex" : "male",
"heirs" : []
}
]
}
Keluaran 34-103: Jaehaerys, 103-129: Viserys, LINE EXTINCT
Memasukkan
{
"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" : []
}
]
}
Keluaran: 263-299: Eddard, 299-300: Robb, 300-315: Brann, 315-319: Rickon, 319-320: Sansa, 320-350: Arya, 350-384: Jon, LINE EXTINCT
Perhatikan bahwa output dapat diformat dengan cara apa pun yang Anda inginkan, satu-satunya persyaratan adalah bahwa ia berisi waktu pemerintahan dan nama raja yang memerintah selama tahun-tahun itu. Saya telah menggunakan raja-raja dari ASOIAF sebagai contoh demonstratif, namun kode harus valid untuk semua input.
Anda mungkin berasumsi bahwa tidak ada anak kembar yang dilahirkan.
Ini adalah tantangan golf kode, jadi kode terpendek dalam byte menang
Semoga berhasil!!!
In case the king had no sons the realm goes to the oldest legit king's brother
. Tampaknya bertentangan dengan poin 2 (Jika tidak ada putra yang sah, maka anak perempuan tertua yang sah dinobatkan). Apakah maksud Andaheirs
alih-alihsons
di poin 3?Jawaban:
PHP, 664 byte
Saya tidak yakin apakah 664 byte cocok untuk kode golf, tetapi ini dia:
Ia menerima input string JSON sebagai argumen baris perintah pertama.
Algoritme mengikuti langkah-langkah yang dijelaskan dalam tantangan (mulai dari raja, kemudian mengurutkan ahli waris dan kemudian saudara kandung untuk menemukan raja berikutnya).
Demo
sumber
while
loop dilarang saat bermain golf di PHP :).