คำถามนี้ยากกว่ารุ่น art ASCII เล็กน้อย ไม่มีงานศิลปะและตอนนี้คุณต้องทำเลขคณิตจุดลอยตัว!
ความท้าทาย
USS StackExchange กำลังเดินทางผ่านสนามแรงโน้มถ่วงของดาวเคราะห์ cg-00DLEF เมื่อเกิดการระเบิดทางดาราศาสตร์ขึ้นบนเรือ ในฐานะหัวหน้าเจ้าหน้าที่เขียนโปรแกรมของเรือคุณมีหน้าที่จำลองเส้นทางการเคลื่อนที่ของเรือเพื่อคาดการณ์ว่าคุณจะถูกบังคับให้ชนบนบกในระบบสุริยะของ cg-00DELF หรือไม่ ในระหว่างการระเบิดเรือของคุณเสียหายอย่างหนัก เนื่องจากยานอวกาศ DEEEPRAROM * ที่ จำกัด ฟรีคุณต้องเขียนโปรแกรมของคุณให้มีจำนวนอักขระน้อยที่สุดเท่าที่จะทำได้
* การเข้าถึงแบบสุ่มที่สามารถลบได้ด้วยโปรแกรมแบบลบได้
การจำลองสถานการณ์
ค่อนข้างคล้ายกับเวอร์ชันศิลปะ ASCII จะมีความคิดเกี่ยวกับขั้นตอนเวลา ในอีกเวอร์ชั่นหนึ่งช่วงเวลาเป็นช่วงเวลาที่ค่อนข้างใหญ่เรือสามารถเดินทางได้ไกลกว่าแรงโน้มถ่วงของดาวเคราะห์ในขั้นตอนเดียว ที่นี่ขั้นตอนเวลาเป็นหน่วยที่เล็กกว่ามากเนื่องจากมีระยะทางที่ใหญ่กว่า อย่างไรก็ตามความแตกต่างที่สำคัญอย่างหนึ่งก็คือการไม่มีเซลล์ ตำแหน่งและความเร็วของยานอวกาศในปัจจุบันจะเป็นตัวเลขจุดลอยตัวพร้อมกับแรงโน้มถ่วงที่เกี่ยวข้อง การเปลี่ยนแปลงอีกประการหนึ่งคือความจริงที่ว่าดาวเคราะห์มีขนาดใหญ่กว่ามาก
จะมีดาวเคราะห์สามดวงในการจำลอง ทั้งสามจะมีตำแหน่งรัศมีและแรงโน้มถ่วงที่เฉพาะเจาะจง แรงโน้มถ่วงสำหรับดาวเคราะห์แต่ละดวงนั้นเป็นเวกเตอร์ที่ออกแรงโดยตรงไปยังศูนย์กลางของดาวเคราะห์ สูตรในการหาความแข็งแรงของเวกเตอร์นี้คือ(Gravity)/(Distance**2)
โดยที่ระยะทางเป็นระยะทางที่แน่นอนจากเรือถึงศูนย์กลางของดาวเคราะห์ ซึ่งหมายความว่าไม่มีการ จำกัด ว่าแรงโน้มถ่วงจะไปถึงที่ใด
ยานอวกาศมีความเร็วซึ่งเป็นระยะทางและมุมที่มันเคลื่อนที่จากขั้นตอนสุดท้ายจนถึงตอนนี้ เรือยังมีโมเมนตัม ระยะทางที่มันจะเดินทางระหว่างขั้นตอนเวลาปัจจุบันและระยะถัดไปคือผลรวมของความเร็วปัจจุบันที่เพิ่มเข้ากับเวกเตอร์แรงโน้มถ่วงทั้งหมดที่ตำแหน่งของมัน นี่เป็นความเร็วใหม่ของยานอวกาศ
การจำลองแต่ละครั้งมีการ จำกัด เวลา 10,000 ขั้นตอน หากยานอวกาศเดินทางเข้าไปในดาวเคราะห์ (ใกล้กับศูนย์กลางของดาวเคราะห์มากกว่ารัศมีของดาวเคราะห์) มันก็ชนเข้ากับดาวเคราะห์ดวงนั้น ถ้ายานอวกาศไม่ชนเข้ากับดาวเคราะห์ใด ๆ ในตอนท้ายของการจำลองมันก็คงจะสันนิษฐานได้ว่าหนีจากแรงโน้มถ่วง ไม่น่าเป็นไปได้ที่เรือจะสามารถจัดตำแหน่งอย่างสมบูรณ์แบบเพื่อให้สามารถอยู่ในวงโคจรได้ 10,000 ขั้นตอนในขณะที่ชนกับ 1,0001 ขั้นตอนในเวลา
อินพุต
อินพุตจะเป็นสี่บรรทัดถึง STDIN แต่ละบรรทัดประกอบด้วยตัวเลขสี่ตัวคั่นด้วยเครื่องหมายจุลภาค นี่คือรูปแบบของตัวเลข:
ShipLocX,ShipLocY,ShipVelX,ShipVelY
Planet1LocX,Planet1LocY,Planet1Gravity,Planet1Radius
Planet2LocX,Planet2LocY,Planet2Gravity,Planet2Radius
Planet3LocX,Planet3LocY,Planet3Gravity,Planet3Radius
หากมีดาวเคราะห์น้อยกว่าสามดวงเส้นที่เหลือจะถูกเติมด้วยศูนย์สำหรับค่าทั้งหมด นี่คือตัวอย่างอินพุต:
60,0,0,10
0,0,4000,50
100,100,4000,50
0,0,0,0
ซึ่งหมายความว่ายานอวกาศตั้งอยู่ที่ (60,0) และเดินทางตรง "ขึ้น / เหนือ" ในอัตรา 10 หน่วย / ขั้นตอน มีดาวเคราะห์สองดวงดวงหนึ่งตั้งอยู่ที่ (0,0) และหนึ่งอยู่ที่ (100,100) ทั้งคู่มีแรงดึงดูดของ 4,000 และรัศมี 50 แม้ว่าทั้งหมดนี้จะเป็นจำนวนเต็ม แต่ก็ไม่ได้เป็นจำนวนเต็มเสมอไป
เอาท์พุต
เอาท์พุทจะเป็นคำเดียวเพื่อ STDOUT เพื่อบอกว่ายานอวกาศตกลงมาหรือไม่ crash
หากผิดพลาดเรือดินแดนพิมพ์ escape
มิฉะนั้นพิมพ์ นี่คือผลลัพธ์ที่คาดไว้สำหรับอินพุตด้านบน:
crash
คุณอาจสงสัยว่าเกิดอะไรขึ้น นี่คือโพสต์ของ Pastebin ที่มีบันทึกการบินอย่างละเอียดสำหรับยานอวกาศ ตัวเลขไม่ดีนักในการช่วยให้ผู้คนเห็นภาพเหตุการณ์ดังนั้นนี่คือสิ่งที่เกิดขึ้น: ยานอวกาศพยายามหลบหนีจากแรงโน้มถ่วงของดาวเคราะห์ดวงแรก (ไปทางทิศตะวันตก) ด้วยความช่วยเหลือของแรงโน้มถ่วงของดาวเคราะห์ดวงที่สอง มันเคลื่อนที่ไปทางเหนือแล้วผ่านไปทางตะวันตกเล็กน้อยของดาวเคราะห์ดวงที่สอง จากนั้นมันโค้งไปทางด้านเหนือของดาวเคราะห์และชนเข้ากับด้านตะวันออกของดาวเคราะห์ดวงที่สอง
บางกรณีเพิ่มเติมสำหรับการตรวจสอบ
60,0,10,-10
0,0,2000,50
100,100,1357.9,47.5
0,0,0,0
หลบหนี (เนื่องจากกฎกำลังสองผกผัน 2000 ไม่แรงโน้มถ่วงมากถ้าคุณอยู่ห่าง 60 หน่วย)
0,0,0,0
100,100,20000,140
-50,-50,50,50
-100,-100,50,50
ความผิดพลาด (ดาวเคราะห์ดวงแรกมีขนาดใหญ่มากและใกล้สุด ๆ )
0,0,0,0
0,0,0,0
0,0,0,0
0,0,0,0
หลบหนี (นี่คือกรณีขอบ: ไม่มีดาวเคราะห์และการตีความที่ตรงไปตรงมาจะแนะนำว่ายานอวกาศอยู่ด้านบนของดาวเคราะห์โดยตรง)
กฎข้อ จำกัด และหมายเหตุ
นี่คือรหัสกอล์ฟ บังคับใช้กฎกอล์ฟมาตรฐาน โปรแกรมของคุณควรเขียนด้วยอักขระ ASCII ที่พิมพ์ได้เท่านั้น คุณไม่สามารถเข้าถึงฐานข้อมูลภายนอกประเภทใด ๆ ได้ คุณสามารถเขียนข้อความเป็นภาษาใดก็ได้ (นอกเหนือจากภาษาที่มีความเชี่ยวชาญในการแก้ปัญหานี้)
สิ้นสุดการส่ง