บทนำ
คุณกำลังเล่นเกมจับคู่ซึ่งมีการแทรกเหรียญที่ด้านบนและตกไปที่ด้านล่าง (บนเหรียญด้านบน) เนื่องจากแรงโน้มถ่วง
ดังนั้นนี่
O <- inserting this coin
OO O
OOOOO
จะกลายเป็นสิ่งนี้
O
OO O
OOOOO
ทีนี้ลองจินตนาการว่ามีคนหมุนกระดานตามเข็มนาฬิกา สิ่งต่อไปนี้จะเกิดขึ้น:
1. กระดานหมุน
OOO
OO
O
OO
O
2. เหรียญล้มลงเนื่องจากแรงโน้มถ่วง
O
O
OO
OO
OOO
งานของคุณ
งานของคุณคือการจำลองการหมุนกระดานโดยการเขียนโปรแกรมหรือฟังก์ชั่น เพื่อความเรียบง่ายเราจัดการกับเหรียญชนิดเดียวเท่านั้น (ไม่ใช่เกมจับคู่ที่น่าตื่นเต้นเกินไปมันคือ…) คุณสามารถสันนิษฐานได้ว่าแรงโน้มถ่วงถูกนำไปใช้หลังจากการหมุนเสร็จสมบูรณ์เท่านั้น กระดานหมุนตามเข็มนาฬิกา
อินพุต
อินพุตจะเป็นสตริงซึ่งมีอักขระ 3 ชนิด:
- O (ตัวใหญ่ o) หรือ 0 (ศูนย์) - เหรียญ (คุณเป็นผู้ตัดสินใจว่าโซลูชันของคุณรองรับแบบใด)
- (ช่องว่าง) - ช่องว่าง
- \ n (บรรทัดใหม่) - สิ้นสุดแถว
อินพุตแสดงสถานะของบอร์ด คุณสามารถสันนิษฐานได้ว่าอินพุตมีรูปแบบที่ดีและมีสถานะที่ถูกต้องของบอร์ด (ไม่มีเหรียญลอย) อินพุตสามารถเป็นพารามิเตอร์ฟังก์ชันหรือสามารถอ่านได้จากอินพุตมาตรฐานหรือจากไฟล์
เอาท์พุต
ผลลัพธ์คือสถานะใหม่ของบอร์ดหลังจากการหมุน เอาต์พุตประกอบด้วยอักขระ 3 ชนิดเดียวกันกับอินพุต เอาต์พุตสามารถส่งคืนจากฟังก์ชันของคุณหรือสามารถเขียนไปยังเอาต์พุตมาตรฐานหรือไปที่ไฟล์
ตัวอย่าง
อินพุต 1:
O
OO O
OOOOO
Output1:
O
O
OO
OO
OOO
input2:
O O
O O
Output2:
OO
OO
คุณสามารถใช้ภาษาใดก็ได้และไลบรารีมาตรฐานของภาษาที่เลือก โปรแกรมที่สั้นที่สุดเป็นไบต์ชนะ