Ini adalah kelanjutan longgar dari tantangan saya sebelumnya pada pembuatan grafik .
Latar Belakang
Seorang seniman eksentrik telah mempekerjakan Anda untuk memperkirakan integritas struktural pahatannya. Dia menciptakan karya seninya dengan mengambil banyak magnet berbentuk kubus, dan menjatuhkannya satu per satu ke tumpukan besar. Untuk menganalisis metodenya dengan lebih baik, kami menggunakan model dua dimensi berikut. Kami mulai dengan lantai kosong, dan menjatuhkan magnet #
pada koordinat bilangan bulat apa pun, katakan 0
:
|
v
#
===============
0
Jika magnet lain jatuh 0
, itu berakhir di atas yang sebelumnya:
|
v
#
#
===============
0
Sekarang, mari kita jatuhkan satu magnet lagi 0
, dan kemudian satu lagi di 1
:
|
#v
##
#
===============
0
Seperti yang terlihat di atas, magnet jatuh menempel pada magnet kedua yang dilewatinya (magnet pertama hanya memperlambatnya). Magnet kedua tidak harus langsung di bawah yang pertama, dan magnet di kedua sisi masih dianggap sebagai satu magnet:
# #
##|##
# v #
### #
# #
===============
0
Para seniman ingin Anda menghitung celah vertikal maksimal di patung terakhir, yaitu, jumlah maksimum ruang kosong antara dua magnet pada kolom yang sama, atau magnet dan tanah di bawahnya. Pada gambar di atas, angka ini adalah 3 (pada kolom 2
).
Memasukkan
Daftar bilangan bulat, mewakili koordinat di mana artis menjatuhkan magnetnya, baca dari kiri ke kanan. Anda dapat mengasumsikan bahwa koordinat memuaskan -1024 <= i < 1024
dan bahwa panjang daftar paling banyak 1024
, jika itu membantu.
Keluaran
Kesenjangan vertikal maksimal di patung terakhir. Patung yang kosong memiliki celah -1
, dan kasing ini harus dimasukkan, karena pematung kami adalah seorang petapa.
Aturan tambahan
Anda dapat memberikan fungsi atau program lengkap. Hitungan byte terpendek menang, dan celah standar tidak diizinkan. Kode dengan penjelasan lebih disukai.
Uji kasus
[] -> -1
[0,2,1] -> 0
[0,0,0,0,0,1,-1] -> 3
[0,0,0,0,0,1,1,1,2] -> 4
[1,1,2,2,2,2,2,2,1] -> 2
[1,1,2,2,2,2,2,2,1,0,1,0] -> 2
[1,2,1,2,1,2,1,2,2,2,2,1,0] -> 3
[-1,-1,-1,1,1,1,0] -> 1
[-1,-1,-1,-1,2,2,1,1,2,2,2,1,0] -> 2
[-2,-2,-2,-1,-1,-1,0,0,0,1,1,1,2,2,2,3,3,4,4,5,5,5,6] -> 6