Lanjut60 XPUnit 12: Simulasi dan Greedy, soal 9 dari 9

Ular Tangga

Jalankan permainan ular tangga dan tentukan pemenangnya.

Ular tangga dimainkan di papan bernomor 1 sampai 100. Semua pemain mulai dari kotak 0 di luar papan dan bergiliran melempar dadu. Kotak yang menjadi kaki tangga membawa pemain naik, dan kotak yang menjadi kepala ular membawanya turun.

Aturan

  • Pemain bergiliran mulai dari pemain 1 sampai pemain P, lalu kembali ke pemain 1.
  • Pemain maju sebanyak mata dadu. Bila langkahnya melewati kotak 100, pemain tidak bergerak di giliran itu.
  • Bila berhenti di awal sebuah tangga atau ular, pemain langsung pindah ke ujungnya. Ujung tangga atau ular tidak pernah menjadi awal tangga atau ular lain.
  • Pemain pertama yang tepat mencapai kotak 100 menang, dan permainan berhenti.

Masukan

Baris pertama berisi P (2 sampai 4) dan M (1 sampai 30). M baris berikutnya masing-masing berisi kotak awal dan kotak ujung sebuah tangga atau ular. Lalu satu baris berisi R (1 sampai 1000), dan satu baris berisi R lemparan dadu sesuai urutan giliran.

Keluaran

Bila ada pemenang, Pemain X menang pada lemparan ke-Y, dengan Y urutan lemparan di seluruh permainan. Bila lemparan habis tanpa pemenang, Posisi akhir: a b ... berisi posisi setiap pemain.

Contoh masukan dan keluaran

  1. Contoh 1

    Masukan

    2 3
    3 51
    6 27
    98 9
    6
    3 6 6 1 6 6

    Keluaran

    Posisi akhir: 63 34

Petunjuk

Coba kerjakan dulu. Buka petunjuk satu per satu kalau kamu buntu.

Petunjuk 1

Simpan posisi pemain di list, dan pemetaan awal ke ujung tangga atau ular di dictionary.

Petunjuk 2

Pemain yang mendapat giliran pada lemparan ke-i (dihitung dari nol) adalah i % P.

Pelajari dulu konsepnyaSimulasi dan brute forcePersiapan OSN Informatika

Soal lain di unit Simulasi dan Greedy

Latih logika sedikit setiap hari

Ada soal harian dengan XP ganda dan liga mingguan yang dimulai dari nol setiap Senin.

Lihat semua tantangan