Dalam tantangan ini, tugas Anda adalah membuat grafik yang tidak diarahkan dari urutan arahan. Ada satu arahan untuk setiap integer nonnegatif, dan masing-masing mengubah grafik yang diberikan menjadi yang baru.
- Arahan
0
: Tambahkan node terputus baru. - Arahan
1
: Tambahkan node baru, dan hubungkan ke setiap node yang ada. - Arahan
m > 1
: Hapus semua node yang derajatnya (jumlah tetangga) habis dibagim
. Catatan yang0
dapat dibagi oleh semuam
, sehingga node terputus selalu dihapus.
Arahan diterapkan satu per satu, dari kiri ke kanan, dimulai dengan grafik kosong. Misalnya, urutan [0,1,0,1,0,1,3]
diproses sebagai berikut, dijelaskan menggunakan seni ASCII yang mengagumkan. Kami mulai dengan grafik kosong, dan menambahkan satu titik seperti yang diarahkan oleh 0
:
a
Kemudian, tambahkan simpul lain dan hubungkan ke yang pertama, seperti yang diarahkan oleh 1
:
a--b
Kami menambahkan simpul terputus lain dan kemudian terhubung, seperti yang diarahkan oleh 0
dan 1
:
a--b c
\ \ /
`--d
Kami mengulangi ini sekali lagi, sebagaimana diarahkan oleh 0
dan 1
:
,--f--e
/ /|\
a--b | c
\ \|/
`--d
Akhirnya, kami menghapus simpul derajat-3 a
dan b
, sebagaimana diarahkan oleh 3
:
f--e
|\
| c
|/
d
Ini adalah grafik yang ditentukan oleh urutan [0,1,0,1,0,1,3]
.
Memasukkan
Daftar bilangan bulat negatif, mewakili urutan arahan.
Keluaran
Jumlah node dalam grafik ditentukan oleh urutan.
Uji kasus
[] -> 0
[5] -> 0
[0,0,0,11] -> 0
[0,1,0,1,0,1,3] -> 4
[0,0,0,1,1,1] -> 6
[0,0,1,1,0,0,1,1,2,5,7,0,1] -> 6
[0,0,1,1,1,1,5,1,4,3,1,0,0,0,1,2] -> 6
[0,0,1,1,0,0,1,1,5,2,3,0,0,1,1,0,0,1,1,3,4,0,0,1,1,2,1,1] -> 8
[0,0,1,1,0,0,1,1,2,5,7,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,8] -> 14
Aturan terperinci
Anda dapat menulis fungsi atau program lengkap. Hitungan byte terpendek menang. Celah standar tidak diijinkan. Tolong jelaskan algoritma Anda dalam jawaban Anda.
Sudah seminggu, jadi saya telah menerima jawaban terpendek. Jika yang lebih pendek datang nanti, saya akan memperbarui pilihan saya. Disebutkan dengan terhormat jawaban Peter Taylor , yang menjadi dasar beberapa orang lain, termasuk pemenangnya.