यह दिसंबर 2014 है, और 2015 लगभग शुरू हो गया है। हालांकि, ऐसा प्रतीत होता है कि हर किसी को इसका एहसास नहीं हुआ है।
लेकिन पीपीसीजी के लोग बचाव में आते हैं!
इनपुट
आपके कार्यक्रम को एक दीवार की तरह एक ग्रिड दिया जाता है, जहां महीने में दिसंबर के दिन नवंबर और जनवरी में उन लोगों से अलग दिखते हैं। प्रत्येक सप्ताह रविवार से शुरू होता है और शनिवार से समाप्त होता है।
महीने के भीतर दिनों का प्रतिनिधित्व ए #
। महीने के बाहर आने वाले दिन एक (अंतरिक्ष, ASCII कोड 32) द्वारा दर्शाए जाते हैं । प्रत्येक सप्ताह एक अलग लाइन पर है। लाइनों को एक नई लाइन वर्ण (
\n
) से अलग किया जाता है । आपके प्रोग्राम को इनपुट के अंत में एक नई लाइन के ommission या समावेशन की आवश्यकता हो सकती है।
उदाहरण के लिए, यह दिसंबर 2009 का इनपुट है:
#####
#######
#######
#######
#####
कैलेंडर हमेशा दिसंबर महीने का होता है।
कार्य
इनपुट को देखते हुए, आपको कैलेंडर से संबंधित वर्ष ढूंढना होगा। चूंकि कई वर्ष हैं, जिसके लिए एक कैलेंडर मैच होता है, तो आपको वर्ष 2015 से पहले (2015 से पहले) वापस लौटना होगा (2015 को ही छोड़कर)
आपके कार्यक्रम को किसी भी वर्ष <2015 के लिए सही आउटपुट का उत्पादन करना चाहिए, जिसमें दिसंबर के लिए एक कैलेंडर लेआउट है, जो 2015 के करीब एक और वर्ष (2015 से पहले) के बराबर है।
यदि वर्ष <2014 है, तो आपको वर्ष 2014 के अंतर की भी गणना करनी चाहिए। उदाहरण के लिए, 2012 का अंतर है 2
।
उत्पादन
आपके प्रोग्राम का आउटपुट होना चाहिए:
- पाठ:
Your calendar is for <year>.
(नोट: चूंकि यह मूल रूप से "कैलेंडर" के रूप में लिखा गया था, इसलिए मैं उस वर्तनी को भी स्वीकार करूंगा।) - एक नई लाइन (
\n
या\r\n
) द्वारा पीछा किया । - पाठ द्वारा अनुसरण किया गया:
It's almost 2015.
- यदि वर्ष <2014 है, तो इसे पाठ द्वारा पालन किया
You're <difference> years behind.
जाना चाहिए : यह एक अलग लाइन पर होना चाहिए। - एक नई लाइन (
\n
या\r\n
) द्वारा पीछा किया । - पाठ द्वारा अनुसरण किया गया:
Go buy a new calendar!
- वैकल्पिक रूप से एक नई पंक्ति (
\n
या\r\n
) के बाद।
नियम
- आप चुन सकते हैं कि क्या आप कैलेंडर को कमांड-लाइन तर्क (जैसे
yourprogram.exe <calendar>
) के रूप में प्राप्त करना चाहते हैं या उपयोगकर्ता इनपुट के लिए संकेत दे सकते हैं। - आप मान सकते हैं कि आपका कार्यक्रम अमान्य इनपुट प्राप्त नहीं करेगा। अमान्य इनपुट में कैलेंडर लेआउट शामिल है जिसके लिए कोई वर्ष मौजूद नहीं है।
- सबसे छोटा कोड (बाइट्स में, किसी भी भाषा में) जीतता है।
कोई भी गैर-मानक कमांड-लाइन तर्क (तर्क जो आमतौर पर स्क्रिप्ट चलाने के लिए आवश्यक नहीं हैं) कुल वर्ण गणना की ओर गिनते हैं।
आपका कार्यक्रम क्या नहीं करना चाहिए :
- किसी भी बाहरी संसाधनों पर निर्भर।
- एक विशिष्ट फ़ाइल नाम होने पर निर्भर करता है।
- आवश्यक आउटपुट के अलावा कुछ भी आउटपुट करें।
- असाधारण रूप से लंबे समय तक चलना। यदि आपका कार्यक्रम औसत उपयोगकर्ता के कंप्यूटर पर एक मिनट से अधिक चलता है, तो यह अमान्य है।
- आपके प्रोग्राम को एक प्रोग्रामिंग भाषा में नहीं लिखा जाना चाहिए, जिसके लिए इस चुनौती को पोस्ट करने से पहले सार्वजनिक रूप से उपलब्ध संकलक / दुभाषिया मौजूद नहीं था।
उदाहरण
इनपुट:
#####
#######
#######
#######
#####
आउटपुट:
Your calendar is for 2009.
It's almost 2015.
You're 5 years behind.
Go buy a new calendar!
इनपुट:
######
#######
#######
#######
####
आउटपुट:
Your calendar is for 2014.
It's almost 2015.
Go buy a new calendar!
इनपुट:
#
#######
#######
#######
#######
##
आउटपुट:
Your calendar is for 2012.
It's almost 2015.
You're 2 years behind.
Go buy a new calendar!