กุญแจคุโรมาตี้ประกอบด้วย แม่กุญแจ จำนวน 2 แถว และลูกกุญแจ จำนวน 1 แถว สร้างจากตัวอักษรภาษาอังกฤษพิมพ์ใหญ่ (‘A’ – ‘Z’) โดยที่แม่กุญแจมีความยาว L ตัวอักษรและลูกกุญแจมีความยาว K ตัวอักษร ดังรูป
ลูกกุญแจ |
แม่กุญแจ |
รูปที่ 1 ตัวอย่างลูกกุญแจความยาว 3 ตัวอักษรและ แม่กุญแจความยาว 4 ตัวอักษร
ลูกกุญแจ จะเลื่อนเข้าไประหว่างแม่กุญแจ จากซ้ายไปขวา ครั้งละ 1 ตำแหน่งตัวอักษร ในขณะที่ลูกกุญแจเลื่อนเข้าไปแต่ละครั้ง ณ ตำแหน่งแนวตั้งที่ลูกกุญแจอยู่ระหว่างแม่กุญแจจะมีตัวอักษรอยู่ 3 ตัว ได้แก่ ตัวอักษรของลูกกุญแจส่วนที่สอดอยู่ด้านใน (x) ตัวอักษรของแม่กุญแจแถวบน (a) และแถวล่าง (b) สำหรับตำแหน่งแนวตั้งเหล่านั้น เราจะนำตัวอักษรทั้งสามตัวนี้มาเรียงกันตามลำดับจาก A ไปหา Z แล้วแทนค่า x ในลูกกุญแจด้วยตัวอักษรกึ่งกลาง แต่จะไม่มีการเปลี่ยนแปลงตัวอักษร a และ b
|
รูปที่ 2 การเปลี่ยนตัวอักษรในลูกกุญแจครั้งแรก
ในแต่ละครั้งของการเลื่อนลูกกุญแจ ถ้ามีตัวอักษรที่อยู่ระหว่างแม่กุญแจมากกว่า 1 ตัว จะต้องดำเนินการตามเงื่อนไขข้างต้นสำหรับตัวอักษร x ทุกตัว แล้วจึงเลื่อนลูกกุญแจต่อไปได้ การเลื่อนลูกกุญแจจะสิ้นสุดลงเมื่อตัวอักษรด้านซ้ายสุดของลูกกุญแจ ผ่านตัวอักษรตำแหน่งขวาสุดของแม่กุญแจไปแล้ว ดังรูปที่ 3
งานของคุณ
จงเขียนโปรแกรมจำลองการทำงานของกุญแจคุโรมาตี้ จากข้อมูลนำเข้าของ แม่กุญแจ และลูกกุญแจ แต่ละชุด พร้อมทั้งแสดงผลลัพธ์สุดท้ายของตัวอักษรที่อยู่ในลูกกุญแจ ตามลำดับจากซ้ายไปขวา
รูปที่ 3 ตัวอย่างการทำงานของระบบกุญแจคุโรมาตี้ครั้งที่ 1 2 3 และ ครั้งสุดท้าย
ข้อมูลนำเข้า
ข้อมูลบรรทัดแรก เป็นค่าความยาวของแม่กุญแจ L (1 ≤ L ≤ 127) และค่าความยาวของลูกกุญแจ K (1 ≤ K ≤ 127) ตัวเลขทั้งสองคั่นด้วยช่องว่าง
ข้อมูลบรรทัดที่สองและสาม เป็นตัวอักษรของแม่กุญแจ แถวบน และล่าง ตามลำดับ มีจำนวนตัวอักษรแถวละ L ตัว
ข้อมูลบรรทัดที่สี่ เป็นตัวอักษรของลูกกุญแจ มีจำนวน K ตัว
ข้อมูลส่งออก
ตัวอย่างข้อมูลนำเข้า | ตัวอย่างข้อมูลส่งออก |
4 3 BOAT HALF KEY | HFH |
1 4 A Z MAKE | MAKE |
3 1 ANT FAN J | N |