कार्य
एक प्रोग्राम लिखें जो तीन पूर्णांक m , n या तो STDIN से या कमांड-लाइन तर्क के रूप में पढ़ता है , आयामों × × n द्वारा 2 × 1 और 1 × 2 डोमिनोज़ के आयत के सभी संभावित झुकावों को प्रिंट करता है और अंत में मान्य टाइलों की संख्या को पढ़ता है।
एक व्यक्तिगत टाइलिंग के डोमिनोज़ को 2 × 1 के-
लिए दो डैश ( ) और 1 × 6 डोम के लिए दो ऊर्ध्वाधर सलाखों ( ) द्वारा दर्शाया जाना है । प्रत्येक टाइलिंग (पिछले एक सहित) को एक लाइनफीड द्वारा पालन किया जाना है।|
स्कोरिंग उद्देश्यों के लिए, आपको एसटीडीआईएन से या कमांड लाइन तर्क के रूप में एक ध्वज को भी स्वीकार करना होगा जो आपके कार्यक्रम को केवल मान्य झुकाव की संख्या प्रिंट करता है, लेकिन स्वयं झुकाव नहीं।
आपका प्रोग्राम 1024 बाइट्स से अधिक लंबा नहीं हो सकता है। इसे सभी इनपुट्स के लिए काम करना है जैसे कि m × n । 64 ।
( 4x6 आयत के सभी डोमिनोज़ प्रिंट से प्रेरित होकर ।)
उदाहरण
$ sdt 4 2
----
----
||--
||--
|--|
|--|
--||
--||
||||
||||
5
$ sdt 4 2 scoring
5
स्कोरिंग
आपका स्कोर इनपुट के लिए आपके कार्यक्रम के निष्पादन समय से निर्धारित होता है सेट झंडे के सेट के साथ 8 8 के निर्धारित होता है।
इसे सबसे तेज कोड बनाने के लिए तेज़ कंप्यूटर चुनौती बजाय , मैं आधिकारिक स्कोर निर्धारित करने के लिए अपने कंप्यूटर (Intel Core i7-3770, 16 GiB PC3-12800 RAM) पर सभी प्रस्तुतियाँ चलाऊंगा।
कृपया अपने कोड को संकलित और / या निष्पादित करने के बारे में विस्तृत निर्देश छोड़ दें। यदि आपको अपनी भाषा के संकलक / दुभाषिया के विशिष्ट संस्करण की आवश्यकता है, तो उस आशय का विवरण दें।
यदि मेरे पास बिना जमा किए पद छोड़ने का अधिकार सुरक्षित है:
मेरे ऑपरेटिंग सिस्टम के लिए कोई मुफ्त (बीयर के रूप में) संकलक / दुभाषिया नहीं है (फेडोरा 21, 64 बिट्स)।
हमारे प्रयासों के बावजूद, आपका कोड काम नहीं करता है और / या मेरे कंप्यूटर पर गलत आउटपुट उत्पन्न करता है।
संकलन या निष्पादन में एक घंटे से अधिक समय लगता है।
आपके कोड या एकमात्र उपलब्ध संकलक / दुभाषिया में
rm -rf ~
समान रूप से गड़बड़ करने के लिए एक सिस्टम कॉल या कुछ होता है।
लीडरबोर्ड
मैंने सभी सबमिशनों को फिर से बनाया है, दोनों संकलन और निष्पादन के लिए 10,000 पुनरावृत्तियों के साथ एक लूप में निष्पादित किया जा रहा है और निष्पादन (कोड की गति के आधार पर) और मतलब की गणना के लिए 100 से 10,000 पुनरावृत्तियों के बीच।
ये परिणाम थे:
User Compiler Score Approach
jimmy23013 GCC (-O0) 46.11 ms = 1.46 ms + 44.65 ms O(m*n*2^n) algorithm.
steveverrill GCC (-O0) 51.76 ms = 5.09 ms + 46.67 ms Enumeration over 8 x 4.
jimmy23013 GCC (-O1) 208.99 ms = 150.18 ms + 58.81 ms Enumeration over 8 x 8.
Reto Koradi GCC (-O2) 271.38 ms = 214.85 ms + 56.53 ms Enumeration over 8 x 8.
--
:। यदि यह लंबवत है, तो यह दो है |
, दूसरे के नीचे एक है।