लंबाई की एक संख्या रेखा पर M, जहाँ 0 < M <= 1,000,000,000, आपने N( 1 < N <= 100,000) पूर्णांक जोड़े दिए हैं। प्रत्येक जोड़ी में, पहला बिंदु दर्शाता है कि कोई वस्तु वर्तमान में कहां स्थित है, और दूसरा बिंदु यह दर्शाता है कि किसी वस्तु को कहां ले जाना चाहिए। (ध्यान रखें कि secondबिंदु इससे छोटा हो सकता है first)।
अब, मान लें कि आप बिंदु पर शुरू करते हैं 0और एक कार्ट है जो 1ऑब्जेक्ट को पकड़ सकता है। आप संख्या रेखा के साथ कम से कम दूरी ( विस्थापन नहीं ) पर यात्रा करते हुए सभी वस्तुओं को अपनी प्रारंभिक स्थिति से उनके संबंधित अंतिम स्थान पर ले जाना चाहते हैं । आपको बिंदु पर समाप्त करना होगा M।
अब, मैं इस समस्या को कम करने की कोशिश कर रहा हूं। सच कहूँ तो मैं एक क्रूर बल ( संभवतः लालची) समाधान के बारे में सोच भी नहीं सकता । हालांकि, मेरा पहला विचार एक बैकवर्ड आंदोलन को दो आगे बढ़ने के लिए प्रेरित करना था, लेकिन यह सभी मामलों में काम नहीं करता है।
मैंने इन 3नमूना परीक्षण के मामलों को यहां प्रस्तुत किया है:
पहले टेस्टकेस का उत्तर है 12। सबसे पहले, आप redबिंदु पर आइटम उठाते हैं 0। फिर आप बिंदु 6(दूरी = 6) पर जाते हैं, redआइटम को अस्थायी रूप से छोड़ते हैं , फिर greenआइटम को उठाते हैं । फिर आप बिंदु 5(दूरी = 1) पर जाते हैं और greenआइटम को छोड़ते हैं । फिर आप बिंदु पर वापस जाते हैं6 (दूरी = 1) पर और redआपके द्वारा गिराया गया आइटम उठाते हैं , बिंदु 9 (दूरी = 3) पर जाते हैं, फिर अनुक्रम को समाप्त करने के लिए बिंदु 10(दूरी = 1) पर जाते हैं।
कुल दूरी तय की गई 6 + 1 + 1 + 3 + 1 = 12, जो न्यूनतम संभव दूरी है।
अन्य दो मामलों के उत्तर हैं 12, मेरा मानना है। हालाँकि, मैं इसे हल करने के लिए एक सामान्य नियम नहीं खोज सकता।
किसी को कोई विचार मिला?