คุณพายเรือแคนูไปตามแม่น้ำสายน้ำที่ค่อนข้างเร็ว ทันใดนั้นไม้พายของคุณก็ระเบิดและคุณก็พบว่าตัวเองตกอยู่ในสถานการณ์อันตรายที่พุ่งลงแม่น้ำอย่างรวดเร็วโดยไม่มีไม้พาย โชคดีที่คุณยังมีทักษะการเขียนโปรแกรมดังนั้นคุณตัดสินใจที่จะแกะสลักโปรแกรมที่ด้านข้างของเรือแคนูเพื่อช่วยให้คุณรอดจากกระแสน้ำเชี่ยว อย่างไรก็ตามมีพื้นที่ผิวด้านข้างของแคนูไม่มากนักในการเขียนโปรแกรมด้วยดังนั้นคุณต้องทำให้โปรแกรมสั้นที่สุดเท่าที่จะทำได้
แม่น้ำสามารถแสดงเป็น 8 โดย 16 ตาราง เราจะติดป้ายคอลัมน์ด้วยตัวเลข0
ไป7
และแถวที่มีตัวเลขการ0
15
y
--------15
--------14
--------13
--------12
--------11
--------10
--------9
--------8
--------7
--------6
--------5
--------4
--------3
--------2
--------1
--------0
01234567
x
ด้านบน: แม่น้ำธรรมดาที่สงบนิ่งไม่มีสิ่งกีดขวาง ตามธรรมชาติแล้วนี่ไม่ใช่แม่น้ำที่คุณอยู่
คุณเริ่มที่พิกัด (4, 0) และจากนั้นเลื่อนขึ้นไปตามแม่น้ำอย่างไม่สามารถควบคุม (เช่นเวกเตอร์(0,1)
) จนกว่าคุณจะชนหิน (แทนด้วยo
ตัวอย่างในตัวอย่างเหล่านี้) เมื่อคุณชนหินคุณจะมีโอกาส 55% ที่จะเคลื่อนที่ผ่านก้อนหินไปทางซ้าย (เช่นเวกเตอร์(-1,1)
) และ 45% โอกาสที่จะเคลื่อนที่ผ่านก้อนหินไปทางขวา (เช่นเวกเตอร์(1,1)
) หากเรือแคนูอยู่ทางด้านซ้ายหรือด้านขวาคอลัมน์จะเคลื่อนที่ไปทางกึ่งกลางเสมอ หากไม่มีหินมันจะเคลื่อนที่ขึ้นไปตรง
y
----x---15
----xo--14
-o--x---13
----x---12
---ox---11
---x----10
---xo---9
---ox---8
----xo--7
-----x--6
----ox--5
-o--x---4
----x---3
----xo--2
----x---1
----x---0
01234567
ด้านบน: เส้นทางที่เป็นไปได้ที่เรือแคนูอาจใช้แทนตัวละคร x
ให้แผนที่แม่น้ำเขียนโปรแกรมที่จะส่งออกความน่าจะเป็นของการพายเรือแคนูที่คอลัมน์ที่กำหนด
ยอมรับอินพุตในวิธีใดก็ได้ที่สะดวกสำหรับโปรแกรมของคุณ (เช่น STDIN, อาร์กิวเมนต์บรรทัดคำสั่งraw_input()
, การอ่านจากไฟล์ ฯลฯ ) ส่วนแรกของอินพุตเป็นจำนวนเต็มเดียวจาก 0 ถึง 7 แสดงถึงคอลัมน์โปรแกรมจะหาความน่าจะเป็น ต่อไปนี้เป็นรายการของสิ่งอันดับในรูปแบบที่x,y
แสดงถึงตำแหน่งของหิน
ตัวอย่าง:
การป้อนข้อมูล:
4 4,1 5,5 3,5
สิ่งนี้จะบ่งบอกถึงแม่น้ำที่มีก้อนหินที่ตำแหน่ง (4,1), (5,5) และ (3,5) และถามถึงความน่าจะเป็นของการพายเรือแคนูที่สิ้นสุดที่คอลัมน์ที่ 4
เอาท์พุท:
0.495
โปรดสังเกตว่าในตัวอย่างนี้ตำแหน่งของหินมีความสมมาตรทำให้สามารถแก้ไขปัญหาได้ด้วยการแจกแจงทวินาม กรณีนี้จะไม่เกิดขึ้นเสมอไป!
นอกจากนี้แม่น้ำจะสามารถข้ามได้เสมอ นั่นคือจะไม่มีหินสองก้อนที่อยู่ติดกันในแนวนอน ดูความคิดเห็นของ Glennเพื่อเป็นตัวอย่างของกรณีที่เป็นไปไม่ได้
นี่คือรหัสกอล์ฟจำนวนตัวอักษรต่ำที่สุดจึงเป็นผู้ชนะ อย่าลังเลที่จะถามคำถามในความคิดเห็นหากข้อกำหนดไม่ชัดเจน