एल्गोरिथ्म्स और डेटा स्ट्रक्चर्स

संख्या रूपांतरण

Emil के पास एक संख्या x है और वह उसे दूसरी संख्या y में बदलना चाहता है। ऐसा करने के लिए, वह निम्नलिखित क्रियाएं कर सकता है:
  1. Emil वर्तमान संख्या x में 1 जोड़ सकता है (x = x + 1) और इसके लिए 1 unit धन का भुगतान करना होगा।
  1. Emil वर्तमान संख्या x में से 1 घटा सकता है (यदि x शून्य से बड़ा है) (x = x - 1) और इसके लिए 1 unit धन का भुगतान करना होगा।
  1. Emil, x को किसी भी धनात्मक पूर्णांक k से गुणा कर सकता है (x = k ⋅ x) और इसके लिए 2k units धन का भुगतान करना होगा।
  1. Emil, x को किसी भी धनात्मक पूर्णांक k से भाग दे सकता है, बशर्ते x, k से विभाज्य हो (x = x / k), और इसके लिए 2k units धन का भुगतान करना होगा।
आपको एक प्रोग्राम लिखना है जो यह निर्धारित करे कि x को y में बदलने के लिए Emil को कम से कम कितना धन खर्च करना पड़ेगा। साथ ही, आपको उन क्रियाओं को उसी क्रम में प्रदर्शित करना है जिसमें उन्हें किया जाना चाहिए। ध्यान दें कि यदि न्यूनतम लागत प्राप्त करने के एक से अधिक तरीके हैं, तो आप उनमें से किसी एक को भी दिखा सकते हैं। साथ ही, आपको क्रियाओं की कुल संख्या कम करने की आवश्यकता नहीं है।

इनपुट (Input)

इनपुट में दो पूर्णांक x और y (1 ≤ x, y ≤ 10 000) दिए जाते हैं, जो क्रमशः Emil की आरंभिक संख्या और इच्छित अंतिम संख्या का प्रतिनिधित्व करते हैं।

आउटपुट (Output)

आउटपुट की पहली पंक्ति में दो रिक्त-सेपरेटेड पूर्णांक m और n होने चाहिए, जहाँ m इस रूपांतरण में हुई क्रियाओं की संख्या है, और n Emil द्वारा खर्च की जाने वाली धनराशि का न्यूनतम मान है।
अगली m पंक्तियों में, उसी क्रम में क्रियाओं کے सूचकांक को प्रिंट करें, जिसमें उन्हें किया जाना चाहिए। यदि क्रिया Multiply या Divide ( या ) है, तो क्रिया के सूचकांक के बाद एक रिक्त स्थान देकर को भी प्रदर्शित करें।

Examples

इनपुट
आउटपुट
3 7
4 4 1 1 1 1
10 21
2 5 3 2 1
21 10
2 5 2 4 2
10 32
3 8 3 3 1 1

Constraints

Time limit: 5 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue