บทนำ
Sisyphus มีปัญหาในการทำงานเมื่อเร็ว ๆ นี้ ดูเหมือนว่าเขาจะไม่ทำอะไรเลยและเขาก็รักที่จะหาทางแก้ไขปัญหานี้
การจ้างงานในปัจจุบันของเขาต้องการหินกลิ้งขึ้นเขา เขามักจะทำงานของเขาได้ดี แต่ทุกครั้งที่เขาอยู่ใกล้จุดสูงสุดของเนินเขามันจะกลิ้งลงมาอีกครั้ง
เขารู้สึกหงุดหงิดกับงานของเขามากและต้องการแก้ปัญหาทางวิทยาศาสตร์โดยให้คอมพิวเตอร์จำลองก้อนหินกลิ้งลงมาจากเนินเขา
มันเกิดขึ้นแล้วที่ซิสฟีฟไม่ดีในการเขียนโปรแกรมเป็นพิเศษดังนั้นบางทีคุณสามารถช่วยเขาออกมาได้?
ความท้าทาย
หลังจากการแนะนำที่ไร้สาระนี้เรามาทำธุรกิจ โปรแกรมของคุณจะได้รับภาพประกอบของเนินเขาและก้อนหินซึ่งมีลักษณะคล้ายกับนี้:
#o
##
###
######
########
ซึ่ง#เป็นส่วนหนึ่งของเนินเขาและoเป็นตัวแทนของหิน
ตอนนี้คุณต้องใช้โปรแกรมที่เคลื่อนเลเยอร์ 1 ลงมา ตัวอย่างเช่นผลลัพธ์ข้างต้นควรเป็น:
#
##o
###
######
########
หากมีพื้นที่ในแนวนอนเขาจะม้วนในแนวนอนดังนั้น ...
o
########
... นี่จะทำให้หินกลิ้งไปด้านข้าง
o
########
หากมีพื้นที่แนวตั้งหินจะตกลงไปหนึ่งขั้นดังนั้น ...
#o
#
#
#####
... จะให้ผล ...
#
#o
#
#####
คุณจะได้รับความกว้างและความสูงของภาพตามลำดับในหนึ่งบรรทัดเหนือภาพ ดังนั้นสมบูรณ์อินพุตตัวอย่างของเราจะมีลักษณะเช่นนี้:
10 5
#o
##
###
######
#########
(โปรดทราบว่าช่องว่างที่นี่คือช่องว่างเลือกข้อความและดูสิ่งที่ฉันหมายถึง)
รายละเอียดบางอย่าง
- เมื่อหินอยู่ในบรรทัดสุดท้ายแล้วเมื่อเรียกใช้โปรแกรมคุณสามารถเลือกที่จะยุติโปรแกรมหรือเอาท์พุทอินพุตที่ไม่เปลี่ยนแปลง
- เขาจะลงไปเท่านั้น
โปรแกรมของคุณควรจัดรูปแบบผลลัพธ์เช่นเดียวกับอินพุต (รวมถึงมิติ) ดังนั้นหากคุณไพพ์เอาท์พุทของโปรแกรมเป็นของตัวเองมันจะคำนวณขั้นตอนต่อไป
คุณสามารถสันนิษฐานได้ว่ามีวิธีที่ด้านล่างเสมอดังนั้นการป้อนข้อมูลที่เส้นทาง "บล็อก" อาจทำให้เกิดพฤติกรรมที่ไม่ได้กำหนด
คุณสามารถสมมติว่ามีช่องว่างในบรรทัดสุดท้ายเสมอ หินควร "หยุดพัก" ที่นั่นดังนั้นหลังจากเรียกโปรแกรมสองสามครั้งแล้วให้ส่งออกไปยังตัวเองเสมอคุณควรท้ายด้วยหินในบรรทัดสุดท้ายวางพื้นที่ที่เคยอยู่
คุณสามารถรับอินพุตในรูปแบบใดก็ได้ที่คุณต้องการ (stdin, file, ... ) คุณต้องโพสต์โปรแกรม WHOLE (ดังนั้นตัวแปรที่เตรียมข้อมูลเบื้องต้นทั้งหมดจะนับเป็นรหัส)
\nเส้นจะสิ้นสุดลงด้วยคุณสามารถรับอินพุตตัวอย่างได้ที่นี่ (ให้แน่ใจว่าคุณคัดลอกช่องว่างอย่างถูกต้อง!)
นี่คือcode-golfดังนั้นการส่งการทำงานที่มีจำนวนไบต์น้อยที่สุดจะเป็นผู้ชนะ
ผู้ชนะจะได้รับการคัดเลือกในวันที่ 26 กรกฎาคม 2014 คุณสามารถโพสต์โซลูชั่นหลังจากนั้น แต่คุณไม่สามารถชนะได้
หากคุณมีคำถามใด ๆ แจ้งให้เราทราบในความคิดเห็น
มีความสุขในการเล่นกอล์ฟ!
#วินาทีดังนั้นจึงมีหนึ่งช่องว่างท้ายเพราะความกว้างคือ 10 ในกรณีนี้ (หลังจากการทำซ้ำสองสามครั้ง) หินจะวางที่ช่องว่าง (ดังนั้นที่ด้านล่าง มุมขวา)
