QOJ.ac

QOJ

Time Limit: 3 s Memory Limit: 2048 MB Total points: 100

#8679. เอียงแผ่นกระเบื้อง

Statistics

คุณพบเกมปริศนาประหลาดในกล่องของเล่นเก่าในห้องใต้หลังคา เกมนี้เป็นกระดานตารางรูปสี่เหลี่ยมผืนผ้าที่ประกอบด้วยช่องสี่เหลี่ยมจัตุรัส $h \times w$ ช่อง บางช่องมีแผ่นกระเบื้องสีวางอยู่ดังรูป F.1

problem_8679_141bfaa0ba0c1196198d6deee1100655.png

รูป F.1: แผ่นกระเบื้องสีตรงกับการจัดวางเริ่มต้นในข้อมูลนำเข้าตัวอย่าง 1

คุณยังไม่แน่ใจว่าเป้าหมายที่แท้จริงของปริศนานี้คืออะไร แต่เริ่มตรวจสอบวิธีจัดเรียงแผ่นกระเบื้องใหม่แล้ว คุณสามารถเปลี่ยนการจัดวางได้ด้วยการเอียงกระดานไปในหนึ่งในสี่ทิศทางหลัก ได้แก่ ไปทางซ้าย ไปทางขวา เข้าหาตัว หรือออกจากตัว การเอียงทำให้กระเบื้องทุกแผ่นเลื่อนไปในทิศทางนั้นจนติดขอบหรือกระเบื้องแผ่นอื่น เมื่อกำหนดการจัดวางเริ่มต้นและสุดท้ายมาให้ จงตรวจสอบว่ามีลำดับการเอียงใดที่เปลี่ยนแบบแรกให้เป็นแบบหลังหรือไม่ รูป F.2 แสดงการเอียงปริศนาในข้อมูลนำเข้าตัวอย่าง 1

problem_8679_eb20e1509cd290b03249b30fb584f1df.png

รูป F.2: วิธีแก้ข้อมูลนำเข้าตัวอย่าง 1

ข้อมูลนำเข้า

บรรทัดแรกมีจำนวนเต็มสองจำนวน $h$ และ $w$ ($1 \le h,w \le 500$) แทนความสูงและความกว้างของกระดาน จากนั้นมี $h$ บรรทัดที่ให้การจัดวางเริ่มต้นจากแถวบนสุดถึงแถวล่างสุด แต่ละบรรทัดมีสตริงความยาว $w$ อธิบายช่องในแถวจากซ้ายไปขวา ถ้าช่องว่าง อักขระที่ตรงกันจะเป็นจุด (.) ถ้ามีกระเบื้อง จะใช้ตัวอักษรพิมพ์เล็ก (a-z) แทนสี อักษรต่างกันแทนสีต่างกัน และกระเบื้องสีเดียวกันแยกแยะจากกันไม่ได้

หลังการจัดวางเริ่มต้นมีบรรทัดว่างหนึ่งบรรทัด แล้วตามด้วยคำอธิบายการจัดวางสุดท้ายจำนวน $h$ บรรทัดในรูปแบบเดียวกัน

ข้อมูลส่งออก

ส่งออก yes ถ้ามีลำดับการเอียงที่เปลี่ยนการจัดวางเริ่มต้นให้เป็นการจัดวางสุดท้าย และส่งออก no ในกรณีอื่น

ตัวอย่าง

ข้อมูลนำเข้า 1

4 4
.r..
rgyb
.b..
.yr.

yrbr
..yr
...g
...b

ข้อมูลส่งออก 1

yes

ข้อมูลนำเข้า 2

1 7
....x..

..x....

ข้อมูลส่งออก 2

no

ข้อมูลนำเข้า 3

4 3
yr.
..b
ry.
b..

...
..b
.ry
byb

ข้อมูลส่งออก 3

no

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.