คริสผู้เสพติดปริศนาอักษรไขว้ที่มีความลับมีอัลกอริทึมที่กำหนดไว้สำหรับลำดับที่เขาแก้ไขได้
เราจะใช้ภาพด้านบนเป็นแนวทาง
- คริสมักจะเริ่มต้นด้วยเบาะแสแรกในกรณีนี้ 1 ข้าม คริสเป็นคนที่มีความสามารถในการไขว้กันดังนั้นจึงคิดว่าเขาจะรู้คำตอบสำหรับเบาะแสที่เขากำลังทำอยู่เสมอ
- เมื่อคริสทำเบาะแสได้สำเร็จเขาจะตรวจสอบเบาะแสทั้งหมดที่อยู่ติดกับที่เขาทำเสร็จแล้ว (ในกรณีแรกคือ 1 ลง, 2 ลงและ 3 ลง) จากนั้นกรอกข้อมูลให้ครบด้วยจำนวนที่น้อยที่สุด หากไม่มีเงื่อนงำที่อยู่ติดกันเขาจะไปที่ขั้นตอนที่ 3
- หากเบาะแสเป็นเช่นนั้นหมายเลขถัดไป (ตามที่อธิบายไว้ในขั้นตอนที่ 3) มีทั้งเงื่อนงำข้ามและเงื่อนงำลงเขาจะทำตามข้ามเงื่อนงำก่อน (แน่นอน 100% ขอบนี้บน OCD!)
- หากไม่มีเบาะแสที่อยู่ติดกันเขาจะไปที่เบาะแสต่อไปที่มีอยู่ถัดไปเป็นตัวเลข (ข้ามหรือลง)
- ทำซ้ำจากขั้นตอนที่ 2 จนกระทั่งเบาะแสทั้งหมดเสร็จสมบูรณ์
และนี่คือที่มาของคุณ coders ที่รัก คุณได้รับมอบหมายให้สร้างรหัสที่สามารถให้เทมเพลตไขว้เพื่อให้ได้ผลลัพธ์ที่อธิบายลำดับของเบาะแสตามอัลกอริทึมของ Chris ในการแก้ปัญหา
รหัสจะยอมรับการป้อนข้อมูลของแม่แบบปริศนาคำไขว้ในรูปแบบของการเป็น.
ตัวแทนของสี่เหลี่ยมสีขาวและเป็น#
ตัวแทนของสี่เหลี่ยมสีดำ
ตัวอย่าง :
.....#.........
.#.#.#.#.#.#.#.
...#...#.......
.#.#.#.#.#.#.#.
....#..........
##.#.#.#.#.#.#.
......#........
.###.#####.###.
........#......
.#.#.#.#.#.#.##
..........#....
.#.#.#.#.#.#.#.
.......#...#...
.#.#.#.#.#.#.#.
.........#.....
อินพุตสามารถผ่าน: a) ไฟล์อ่านการเป็นตัวแทนของคำไขว้หรือ b) โดยการป้อนบรรทัดของแต่ละบรรทัดของคำไขว้ตามด้วย\n
ด้วยวินาที\n
บ่งบอก EOF
จากนั้นจะกำหนดวิธีการที่ Chris จะแก้ปัญหาตามขั้นตอนวิธีด้านบนที่เขาอธิบายไว้
เอาต์พุตจะต้องอยู่ในรูปแบบของชุดคำสั่งที่คั่นด้วยเครื่องหมายจุลภาคในรูปแบบของn(A|D)
ที่ซึ่งn
เป็นหมายเลขเบาะแสตามมาด้วยA
สำหรับข้ามหรือD
ลง
ดังนั้นในตัวอย่างด้านบน (ทั้งจากภาพและแม่แบบตัวอย่างซึ่งเป็นหนึ่งและเหมือนกัน) ผลลัพธ์จะเป็น:
1A,1D,2D,3D,9A,10A,4D,5D,6D,7D,8D,11A,12A,13A,15A,14D,15D,16A,17A,18D,19D,20A,21D,23A,22D,24A,25D,27A,28A,26D,29A,30A,31A
รหัสที่สั้นที่สุดชนะ ...
การทดสอบ
คุณต้องให้รหัสการส่งจำนวนไบต์และหนึ่งในสี่กรณีทดสอบที่แสดงในรูปแบบ.
และ#
รูปแบบตลอดจนเอาต์พุตที่สร้างจากอินพุตนี้ มีสี่กรณีทดสอบสามกรณีด้านล่างและแม่แบบตัวอย่างด้านบน
ตัวอย่างกรณีทดสอบ:
กรณีทดสอบ 1
.....#
.#.#.#
...#..
.#.#.#
.....#
##.#..
เอาท์พุท: 1A,1D,2D,3D,4A,5A,6A,7A
กรณีทดสอบ 2
.....#..
.#.##..#
.#....#.
...##.#.
.####...
......##
เอาท์พุท: 1A,1D,2D,5A,4D,4A,3D,3A,7A,8A,6D,9A
กรณีทดสอบ 3
.........#
#.#.#.#.#.
....#...#.
#...#.#.#.
..###.#.#.
.#....#...
.#####...#
.....###..
เอาท์พุท: 1A,2D,3D,4D,5D,7A,8A,9A,10A,11A,11D,12A,13A,6D,14D,15A,16A,17A
กรณีทดสอบ 4
.....#.........
.#.#.#.#.#.#.#.
...#...#.......
.#.#.#.#.#.#.#.
....#..........
##.#.#.#.#.#.#.
......#........
.###.#####.###.
........#......
.#.#.#.#.#.#.##
..........#....
.#.#.#.#.#.#.#.
.......#...#...
.#.#.#.#.#.#.#.
.........#.....
เอาท์พุท: 1A,1D,2D,3D,9A,10A,4D,4A,5D,6D,7D,8D,11A,12A,13A,15A,14D,15D,16A,17A,18D,19D,20A,21D,23A,22D,24A,25D,27A,28A,26D,29A,30A,31A
โชคดี!
17A
ไปในตอนท้าย นอกจากนี้ยังมีสี่ขวาหลังจาก4A
4D