สมมติว่ากริดของช่องว่างนี้และX
แสดงถึงส่วนตัดของถาดน้ำแข็งเปล่าที่มีรูปร่างแปลก ๆ:
X X X
X X X XX X XX X
XXXXXX XXXXXXXXXXXXX
คอลัมน์ที่ไม่X
ได้เป็นตัวแทนของรูหรือช่องว่างในถาดที่ไม่สามารถกักเก็บน้ำได้ น้ำที่ตกลงมาจากขอบซ้ายหรือขวาสุดของกริดจะเข้าสู่อ่างที่ไม่มีที่สิ้นสุดเช่นกัน
หากเราต้องวางก๊อกน้ำเหนือถาดและให้เติมน้ำจนระดับน้ำในห้องทั้งหมดยังคงมีความเสถียรช่องที่แน่นอนที่เติมจะขึ้นอยู่กับตำแหน่งที่น้ำไหลอยู่เหนือถาด (สมมติว่ามีกระแสน้ำที่บางและมั่นคงโดยไม่มีการสาด)
ตัวอย่างเช่นถ้า faucet ของเราF
อยู่เหนือคอลัมน์กริดที่เหลือ
F
X X X
X X X XX X XX X
XXXXXX XXXXXXXXXXXXX
น้ำจะตกลงมาถึงจุดสูงสุดX
ในคอลัมน์นั้นและกระจายไปทางซ้ายและขวาครึ่งซ้ายที่หกลงในอ่างด้านล่างและครึ่งทางขวาเติมช่อง 2 × 1 เมื่อช่องเติมน้ำครึ่งทางขวาของกระแสน้ำไหลไม่ไหล แต่เข้าสู่อ่างล้างจานและระดับน้ำในทุกที่นั้นคงที่
เมื่อปิดก๊อกน้ำถาดจะมีลักษณะดังนี้: ( ~
เหมือนน้ำ)
X X X
X~~X X XX X XX X
XXXXXX XXXXXXXXXXXXX
ในทำนองเดียวกันถ้าเราวางตำแหน่ง faucet ดังนี้:
F
X X X
X X X XX X XX X
XXXXXX XXXXXXXXXXXXX
มันจะเติมช่องว่างที่เหลือทั้งสองให้เต็ม แต่น้ำที่เหลือจะระบายออก:
X X X
X~~X~X XX X XX X
XXXXXX XXXXXXXXXXXXX
ถ้าเราวางตำแหน่ง faucet ดังนี้:
F
X X X
X X X XX X XX X
XXXXXX XXXXXXXXXXXXX
ครึ่งซ้ายของกระแสน้ำจะไหลลงสู่อ่างล้างจาน แต่ครึ่งขวาจะเติมช่องว่างที่อยู่ทางขวาสุดสามช่องในที่สุดเพราะไม่มีข้อ จำกัด ว่าน้ำจะไหลไปตามแนวนอนบนพื้นราบได้อย่างไร
X X~X
X X X XX~X~~XX~~~X
XXXXXX XXXXXXXXXXXXX
อย่างไรก็ตามตำแหน่งในลักษณะนี้:
F
X X X
X X X XX X XX X
XXXXXX XXXXXXXXXXXXX
น้ำไหลออกหมดและไม่มีช่องใส่
X X X
X X X XX X XX X
XXXXXX XXXXXXXXXXXXX
ท้าทาย
เขียนโปรแกรมหรือฟังก์ชั่นที่ใช้ในช่องสี่เหลี่ยมของช่องว่างX
และหนึ่งF
ช่อง แถวบนสุดจะมีF
และจะมีช่องว่างเสมอ X
's ในแต่ละคอลัมน์ (ถ้ามี) จะขยายในเส้นทึบขึ้นมาจากฐานของตารางคือจะไม่มีการยื่นหรือถ้ำ
พิมพ์หรือส่งคืนกริดหลังจาก faucet F
ได้เติมน้ำ~
เท่าที่จะทำได้ตามที่อธิบายไว้ข้างต้น ปล่อยF
แถวบนออกจากเอาต์พุต
ตารางแยกจากแถว faucet จะเป็น 1 × 1 อย่างน้อย
F X
เป็นอินพุตที่เล็กที่สุดที่คุณต้องการสนับสนุน
การป้อนข้อมูลจะเข้ามาเป็นรูปสี่เหลี่ยมผืนผ้าข้อความที่สมบูรณ์ ช่องว่างนำหน้าและส่วนท้ายมีความสำคัญในอินพุตและเอาต์พุต เช่นอินพุท
F X X XXXX
ควรส่งผลให้
X~~X XXXX
(บันทึกช่องว่างนำหน้าและต่อท้าย)
มีบรรทัดใหม่ต่อท้ายเดียวในอินพุตหรือเอาต์พุตนั้นเป็นเรื่องปกติ
คุณสามารถใช้ใด ๆ ที่แตกต่างกันสี่ASCII พิมพ์ตัวอักษรในสถานที่ของพื้นที่
X
, ,F
~
รหัสที่สั้นที่สุดในหน่วยไบต์ชนะ
ตัวอย่างใหญ่:
การป้อนข้อมูล:
F
X X
X X X
X XXX X X X X X
X X XXXXXXX X XXX XXXXXXX X X
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXX
เอาท์พุท:
X~~~~~~~~~~~~~X
X~~~~~~~~~~~~~X~X
X~~~~~~~~~~~~XXX~~~~~~~X~~~~X~X~~~~~~~~~~~X X
X~~~X~~~~~XXXXXXX~~~~~~X~~~~XXX~~~~~XXXXXXX X X
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXX
zip()
<3