पारंपरिक कीबोर्ड के बिना आधुनिक गेम कंसोल और अन्य उपकरणों पर, इनपुट टेक्स्ट की कोशिश एक बुरा सपना है। वर्चुअल कीबोर्ड पर कुछ बटन और जॉयस्टिक के साथ टाइप करना कष्टप्रद होता है, और मुझे यथासंभव कुछ आंदोलनों / बटन प्रेस करना पसंद है।
आपके द्वारा उपयोग किया जा रहा कीबोर्ड इस तरह दिखता है:
+---+---+---+---+---+---+---+---+---+---+
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 |
+---+---+---+---+---+---+---+---+---+---+
| q | w | e | r | t | y | u | i | o | p |
+---+---+---+---+---+---+---+---+---+---+
| a | s | d | f | g | h | j | k | l | - |
+---+---+---+---+---+---+---+---+---+---+
| z | x | c | v | b | n | m | _ | @ | . |
+---+---+---+---+---+---+---+---+---+---+
निम्नलिखित कार्यों का उपयोग किया जा सकता है:
L
: कीबोर्ड पर बाईं ओर एक वर्ग को घुमाएं (लपेटता है)R
: कीबोर्ड पर दाईं ओर एक वर्ग को घुमाएं (लपेटता है)U
: कीबोर्ड पर एक वर्ग ऊपर ले जाएं (लपेटें)D
: कीबोर्ड पर एक वर्ग नीचे ले जाएं (लपेटें)Y
: एक जगह डालेंB
: प्रविष्टि पॉइंटर को बाईं ओर एक स्थान पर ले जाएं (यदि सूचक शुरुआत में है तो कुछ भी नहीं करता है)F
: प्रविष्टि पॉइंटर को दाईं ओर ले जाएं (पॉइंटर अंत में है तो कुछ भी नहीं करता है)C
: कैप लॉक को टॉगल करेंA
: निवेशन पॉइंटर की स्थिति में चयनित वर्ण डालें
केवल इनपुट इनपुट स्ट्रिंग वाले ASCII वर्णों को देखते हुए जिन्हें उपरोक्त कीबोर्ड और कमांड्स (माचिस [a-zA-Z0-9 _@.-]*
) का उपयोग करके टाइप किया जा सकता है , कमांड का एक क्रम आउटपुट करता है जिसके परिणामस्वरूप आउटपुट स्ट्रिंग होगी। कर्सर की प्रारंभिक स्थिति 1
कुंजी (शीर्ष-बाएं) पर है, और कैप्स लॉक शुरू में बंद है।
स्कोरिंग
किसी भी दिए गए स्ट्रिंग के लिए, एक भोली दृष्टिकोण होगा, स्ट्रिंग में प्रत्येक चरित्र के लिए, कीबोर्ड पर चरित्र पर नेविगेट करें सबसे छोटा पथ, यदि आवश्यक हो तो कैप लॉक को टॉगल करें, और चरित्र का चयन करें। इस तरह के एक भोले दृष्टिकोण लंबाई की एक कमान उत्पन्न करेगा (length of input string) + (sum of Manhattan distances on keyboard between consecutive non-space characters) + (number of times the string alternates between lowercase and uppercase characters) + (1 if string starts with an uppercase letter else 0)
। उदाहरण के लिए, के लिए भोली दृष्टिकोण 101
में परिणाम होगा ALARA
, एक लंबाई 5 आदेश, और में Noob 5
परिणाम होगा DDDRRRRRCAUURRRCAADDLLLLAYUUUA
, एक लंबाई 30 आदेश।
हालाँकि आपका सबमिशन, भोले दृष्टिकोण से बेहतर करने का प्रयास करता है। प्रत्येक इनपुट स्ट्रिंग के लिए, आपके सबमिशन को अंक प्राप्त होंगे कमांड्स की संख्या के बराबर अनुभवहीन दृष्टिकोण माइनस आपके सबमिशन आउटपुट की कमांड की संख्या का उपयोग करता है। आपका कुल स्कोर व्यक्तिगत अंकों का योग होगा।
नियम
- प्रस्तुतियाँ Cloud9 मुक्त वर्चुअल कार्यस्थान पर चलाया जाएगा । कार्यक्षेत्र में 512 MB RAM, 2 GB डिस्क स्थान, 8 Intel (R) Xeon (R) CPUs @ 2.50 GHz (पूर्ण सीपीयू जानकारी, चलाने
cat /proc/cpuinfo
से मिली, यहाँ मिल सकती है ), और 64-बिट Ubuntu 14.04 चला रहा है भरोसेमंद। आप अपनी प्रविष्टि को चलाने और स्कोर करने के लिए परीक्षण कार्यक्षेत्र में पहुंच का अनुरोध कर सकते हैं, या मैं इसे आपके लिए स्कोर कर सकता हूं। - टेस्ट केस के अनुसार सबमिशन एक बार चलाया जाएगा। रनों के बीच भंडारण की स्थिति निषिद्ध है। यदि आवश्यक हो तो इनपुट फ़ाइल को पढ़ने के संभावित अपवाद के साथ स्रोत फ़ाइल के अलावा स्रोत फ़ाइलों (जो रन के बीच संशोधित नहीं किया जा सकता है) के अलावा किसी भी फाइल से नहीं लिख सकते हैं।
- प्रस्तुतियाँ प्रत्येक परीक्षण मामले के लिए रनटाइम के 1 मिनट तक सीमित हैं। सबमिशन कई समाधानों का उत्पादन कर सकता है, लेकिन आवंटित समय के भीतर केवल अंतिम वैध समाधान का उपयोग स्कोरिंग के लिए किया जाएगा। आवंटित समय के भीतर किसी भी वैध समाधान का उत्पादन करने में विफलता के परिणामस्वरूप उस परीक्षण मामले के लिए 0 का स्कोर होगा।
- कृपया अपने सबमिशन को कैसे लागू करें, साथ ही किसी भी उपकरण / लाइब्रेरी को स्थापित करने की दिशा में दिशा-निर्देश शामिल करें, जो एक मानक उबंटू 14.04 इंस्टॉल के साथ शामिल नहीं हैं।
- विजेता सबसे बड़े स्कोर के साथ प्रस्तुत होगा। एक टाई होने की स्थिति में, बेहतर एल्गोरिथम जटिलता के साथ सबमिशन जीत जाएगा। यदि टाई अभी भी हल नहीं हुई है, तो स्कोर और एल्गोरिथम जटिलता तक पहुंचने वाला पहला सबमिशन जीत जाएगा।
- प्रस्तुतियाँ परीक्षण के मामलों के लिए अनुकूलन नहीं कर सकती हैं। यदि मुझे लगता है कि आवश्यकता है, तो मुझे परीक्षण मामलों को बदलने का अधिकार सुरक्षित है।
परीक्षण के मामलों
प्रारूप: input string => naive score
(यदि आप इनमें कोई त्रुटि देखते हैं, तो कृपया सुधार के साथ एक टिप्पणी छोड़ दें)
101 => 5
quip => 12
PPCG => 15
Mego => 25
Noob 5 => 26
penguin => 27
867-5309 => 32
2_sPoOkY_4_mE => 60
The Nineteenth Byte => 76
penguins@SouthPole.org => 95
8xM3R__5ltZgrkJ.-W b => 98
correcthorsebatterystaple => 104
verylongRUNSOFCAPSandnocaps => 118
This is an English sentence. => 122
WNtza.akjzSP2GI0V9X .0epmUQ-mo => 131
Programming Puzzles and Code Golf => 140