Fario2013

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา

Source: [1]

Algo-fu

คุณกำลังเดินทางเพื่อไปฝึกวิชา Algo-fu ที่วัดแห่งหนึ่งกลางภูเขาใหญ่ ก่อนที่คุณจะได้ฝึกฝน คุณจะต้องพิสูจน์ตัวเองก่อนว่า เป็นผู้มีจิตใจที่บริสุทธิ์

คุณได้รับแผนที่ที่แทนพื้นที่เขาในรูปของตารางกริดสี่เหลี่ยม แต่ละช่องจะมีความสูง คุณจะสามารถเคลื่อนที่จากช่องที่คุณอยู่ไปยังช่องที่ติดกันได้ (ติดกันในสี่ทิศคือตะวันออก ตะวันตก เหนือ หรือใต้) ตราบเท่าที่ความสูงของช่องเหล่านั้นต่ำกว่าหรือเท่ากับระดับความบริสุทธิ์ของจิตใจคุณ

เมื่อคุณไปถึงจุดมุมบนซ้าย (แถวที่ 1 คอลัมน์ที่ 1, และจะมีความสูงเท่ากับ 0) จิตใจของคุณนั้นถูกแปดเปื้อนจากอารยธรรมสมัยใหม่ ดังนั้น จิตใจของคุณจะมีระดับความบริสุทธิ์ที่ 0 บางช่องในแผนที่จะมีกิจกรรมให้คุณทำเพื่อจะเพิ่มความบริสุทธิ์ให้กับจิตใจของคุณ ทำให้คุณสามารถเดินสูงเพิ่มขึ้นได้ เป้าหมายของคุณคือหาทางฝึกกิจกรรมให้น้อยครั้งที่สุด แต่ให้ยังสามารถเดินทางถึงวัดเพื่อฝึก Algo-fu ได้

Super Maria

Maria เป็นช่างไฟฟ้าที่อยู่ที่ Fungus Republic ทุก ๆ ไม่กี่ปีจะมีเหตุร้ายเกิดขึ้น และ Maria ก็ต้องเป็นผู้กอบกู้สถานการณ์ทุกครั้งไป ในปีนี้น้องสาวผู้ชั่วร้ายของเธอ Waria ได้ลักพาตัวองค์ชาย Nectarine ไป ทำให้ Maria จะต้องผจญภัยเพื่อไปช่วยองค์ชาย

คนเรียก Maria ว่า Super Maria เพราะว่าเธอมีพลังมหัศจรรย์สามอย่าง คือ

  • ความสามารถอันมหัศจรรย์ที่จะวิ่งไปทางซ้าย
  • ความสามารถอันมหัศจรรย์ที่จะวิ่งไปทางขวา
  • ความสามารถธรรมดาที่จะย้ายตัวเองแบบฉับพลันไปยังเครื่องรับการเทเลพอร์ท

หลังจากที่เธอได้ย้ายตัวเองไปที่เครื่องรับการเทเลพอร์ทใดแล้ว เครื่องรับนั้นจะสูญเสียพลังงานไปจนหมด และจะไม่สามารถใช้ได้อีก ดังนั้น Maria จะสามารถเคลื่อนย้ายตัวเองไปยังเครื่องรับแต่ละเครื่องได้เพียงครั้งเดียวเท่านั้น

ด้วยเหตุผลที่ไม่สามารถอธิบายได้ การเดินทางของ Maria จะต้องมีการไปเก็บเหรียญทอง ที่วางอยู่บนเส้นตรงยาว (เรียกว่า platform) บน platform นั้นจะมีเครื่องรับการเทเลพอร์ทอย่างน้อยหนึ่งเครื่อง Maria จะต้องเคลื่อนย้ายตนเองไปยังเครื่องรับการเทเลพอร์ทบางเครื่อง เพราะว่าเมื่อเริ่มต้นเธอยังไม่ได้อยู่บน platform จากนั้นเธอจึงสามารถใช้พลังมหัศจรรย์ของเธอในการเคลื่อนที่ไปมาและเก็บเหรียญทองทั้งหมด Maria ไม่ชอบการวิ่งไปมาเหมือนช่างซ่อมท่อน้ำงี่เง่า เธอจึงขอให้คุณเขียนโปรแกรมคำนวณหาระยะการวิ่งที่สั้นที่สุดที่เธอต้องใช้ในการเก็บเหรียญทั้งหมด

Maria ไม่สนใจว่าเครื่องรับเครื่องใดจะเป็นเครื่องแรกที่เธอเคลื่อนย้ายไป และเธอก็ไม่สนใจด้วยว่าเธอจะอยู่ตำแหน่งใดบน platform เมื่อเก็บเหรียญเสร็จ ไม่มีเหรียญสองอันอยู่บนตำแหน่งเดียวกัน และไม่มีเครื่องรับสองเครื่องอยู่บนตำแหน่งเดียวกัน (อย่างไรก็ตาม เหรียญและเครื่องรับการเทเลพอร์ทอาจจะอยู่ช่องเดียวกันได้)

Torusia

Alison และ Bill นักวิทยาศาสตร์สองคนอยู่ระหว่างการสำรวจดาวเคราะห์ Torusia ระหว่างสำรวจ นักวิทยาศาสตร์ทั้งสองถูกทำให้แยกจากกัน และลมสุริยะทำให้อุปกรณ์การสื่อสารของพวกเขาเสียหาย และทำให้พวกเขาไม่ทราบว่าอีกคนอยู่ที่ตำแหน่งใด โชคยังดีที่พวกเขามีอุปกรณ์สำหรับทดลองทางวิทยาศาสตร์ที่น่าจะช่วยเขาพวกเขากลับมาเจอกันได้

Alison และ Bill มองดาวเคราะห์ Torusia ว่าเป็นตารางกริดขนาด 4096 x 4069 โดยที่มุมบนซ้ายคือจุด (0,0) ตารางกริดนี้มีลักษณะวนรอบ (wrap around) ที่ขอบ นั่นคือเส้นในแนวนอนไม่ใช่แค่เส้นตารางในแนวนอน แต่จริง ๆ แล้ว เป็นวงกลม เช่นเดียวกับเส้นในแนวตั้ง จุดด้านตะวันออกของจุด (4095,34) คือจุด (0,34) และจุดด้านบนของจุด (17,0) คือจุด (17,4095)

Alison จะพิจารณาจุดของเธอว่าเป็นจุด (0,0) ในขณะที่ Bill จะพิจารณาว่าจุดที่เขาอยู่เป็นจุด (0,0) เช่นเดียวกัน แต่ในความเป็นจริงแล้ว พิกัดโดยสัมบูรณ์ของทั้งคู่จะไม่เท่ากัน (นั่นคือระบบพิกัดของทั้งสองคนนั้นไม่ได้วางทับกันพอดี) อย่างไรก็ตาม ระบบทิศทางของทั้งสองคนนั้นเหมือนกัน นั่นคือถ้า Alison อยู่ที่ตำแหน่ง xA เมตรไปทางทิศตะวันออก และ yA เมตรไปทางทิศใต้ของ Bill จุดที่ Alison เรียกว่าจุด (x,y) จะเป็นจุด ((x+xA) mod 4096, (y+yA) mod 4096) ของ Bill

Alison มีเครื่องมือที่ทำงานดังนี้:

  • mark(x, y) สร้างเครื่องหมายคลื่นแม่เหล็กไฟฟ้าที่ตำแหน่ง x เมตรไปทางตะวันออกและ y เมตรไปทางใต้ของตำแหน่งของเธอ การเรียก mark(x,y) ที่ช่องเที่เคยทำเครื่องหมายแล้วจะไม่ทำให้เกิดเครื่องหมายเพิ่มขึ้นอีก เธอต้องรับประกันว่า 0 <= x,y <= 4095

Bill มีเครื่องมือที่สามารถดำเนินการได้สองแบบคือ:

  • numRow(y) นับจำนวนเครื่องหมายบนแถวที่ y ไปทางทิศใต้ Bill ต้องรับประกันว่า 0 <= y <= 4095
  • numColumn(x) นับจำนวนเครื่องหมายบนคอลัมน์ x ในทิศตะวันออกของตำแหน่งของเขา Bill ต้องรับประกันว่า 0 <= y <= 4095

ในแต่ละนาที Alison และ Bill จะใช้เครื่องมือของพวกเขาทำงานได้หนึ่งอย่าง Alison จะเริ่มทำงานก่อน Bill เล็กน้อย ดังนั้นคุณจะสามารถพิจารณาได้ว่าเครื่องหมายที่เธอทำ จะปรากฏก่อนการตรวจวัดของ Bill

คุณสามารถส่งโปรแกรมให้กับ Alison และ Bill เพื่อช่วย Alison ทำเครื่องหมาย และ Bill ตรวจวัด เพื่อที่ Bill จะสามารถหาตำแหน่งของ Alison ได้เร็วที่สุดเท่าที่จะทำได้