pannenkoek2012 bertujuan untuk menyelesaikan Super Mario 64 dengan sesedikit mungkin menekan tombol A, yang membuat Mario melompat. Setiap "Pers" terdiri dari tiga bagian:
- Menekan tombol
- Memegangnya untuk waktu yang lama
- Melepaskannya
Lihat video ini (1:15 - 3:23) untuk penjelasan hebat yang mencakup gambar di atas. (Namun, tantangan ini tidak akan menggunakan terminologi setengah tekan dan akan menempatkan hambatan yang mengharuskan pelepasan A.)
Tugas:
Diberi urutan hambatan yang membutuhkan penekanan (P), menahan (H), atau melepaskan (R) tombol A, menghasilkan jumlah penekanan terkecil yang diperlukan untuk mengatasinya dalam urutan yang diberikan. Tombol A pada awalnya tidak ditahan.
Dinyatakan secara formal: diberi string S karakter PHR
, pertimbangkan string bentuk (PH*R)*
yang berisi S sebagai urutan, dan hasilkan jumlah terkecil yang mungkin P
dalam string tersebut. Atau, alternatifnya, temukan potongan terkecil dari bentuk P?H*R?
yang dapat dibagi S.
Contoh
Mari kita lihat inputnya RHRPHHHR
. Tombol A mulai tidak ditahan, jadi untuk mengatasi kendala awal R
diperlukan tombol yang ditekan lalu dilepaskan (tekan # 1). Selanjutnya kita diharuskan menahan tombol H
, yang sekali lagi mengharuskannya ditekan (tekan # 2). Kemudian, kemudian dapat dirilis setelahnya untuk memuaskan R
setelahnya. Akhirnya, sisanya PHHHR
dapat dipenuhi dengan sekali tekan (tekan # 3) diikuti dengan menahan HHH
dan melepaskan R
. Jadi, jumlah output adalah 3.
Cara lain untuk melihatnya, adalah bahwa kita dapat membagi string input menjadi 3 bagian bentuk di PHH..HHR
mana huruf dapat dihilangkan.
R
HR
PHHHR
Masukkan format
Input akan berupa daftar atau rangkaian elemen yang mewakili pers, tahan, dan lepaskan sebagai pilihan Anda:
P, H, R
p, h, r
1, 2, 3
0, 1, 2
cocok dengan urutan yang diberikan. Masukan tidak akan kosong.
Kasus uji:
P 1
H 1
R 1
HP 2
RHP 3
HHR 1
PHRH 2
RHRPHHHR 3
HHHHHH 1
PPRRHHPP 6
HPPRHRPRHPPRHPPHRP 12
PRHRHPHHPRRRHPPRHHPPRRRHRHPRPHPRPRHHRPPPRHPRP 28
Papan peringkat: