लंबाई की एक संख्या रेखा पर 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
, मेरा मानना है। हालाँकि, मैं इसे हल करने के लिए एक सामान्य नियम नहीं खोज सकता।
किसी को कोई विचार मिला?