এটি ডিসেম্বর 2014, এবং 2015 প্রায় শুরু হয়েছে। তবে, এটি উপস্থিত সবাই উপলব্ধি করতে পারে না বলে মনে হয়।
কিন্তু পিপিসিগির লোকেরা উদ্ধার করতে আসে!
ইনপুট
আপনার প্রোগ্রামটিকে একটি প্রাচীরের মতো গ্রিড দেওয়া হয়েছে, যেখানে ডিসেম্বরের মাসগুলি নভেম্বর ও জানুয়ারীর চেয়ে আলাদা থাকে। প্রতি সপ্তাহে রবিবার থেকে শুরু হয়ে শনিবার শেষ হয়।
মাসের মধ্যে দিনগুলি ক দ্বারা প্রতিনিধিত্ব করা হয় #
। মাসের বাইরে পড়া দিনগুলিকে একটি (স্পেস, এএসসিআইআই কোড 32) দ্বারা প্রতিনিধিত্ব করা হয় । প্রতি সপ্তাহে একটি পৃথক লাইনে আছে। রেখাগুলি একটি নতুন লাইন অক্ষর দ্বারা পৃথক করা হয় (
\n
)। আপনার প্রোগ্রামটির ইনপুট শেষে একটি নতুন লাইন বাদ দেওয়া বা অন্তর্ভুক্তির প্রয়োজন হতে পারে।
উদাহরণস্বরূপ, এটি ডিসেম্বর ২০০৯ এর ইনপুট:
#####
#######
#######
#######
#####
পঞ্জিকা সর্বদা ডিসেম্বর মাসের।
কার্য
ইনপুট দেওয়া হয়েছে, আপনাকে অবশ্যই ক্যালেন্ডারের সাথে সম্পর্কিত বছরটি খুঁজে বের করতে হবে। যেহেতু একাধিক বছর রয়েছে যার জন্য একটি ক্যালেন্ডার মেলে, আপনাকে অবশ্যই অবশ্যই ২০১৫ (2015 এর আগে) ফিরে আসতে হবে যা 2015 এর নিকটতমতম (
আপনার প্রোগ্রামে অবশ্যই অবশ্যই ২০১৫ সালের জন্য সঠিক আউটপুট তৈরি করতে হবে, ডিসেম্বরের ক্যালেন্ডার লেআউট রয়েছে এমনগুলি বাদ দিয়ে, যা ২০১৫ এর আরও কাছাকাছি (২০১৫ এর আগে) এর সমান।
যদি বছরটি <2014 হয় তবে আপনার অবশ্যই 2014 সালের বছরের পার্থক্যটি গণনা করতে হবে For উদাহরণস্বরূপ, 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!
- Ptionচ্ছিকভাবে একটি নতুন লাইন (
\n
বা\r\n
) এর পরে।
বিধি
- আপনি ক্যালেন্ডারটি কমান্ড-লাইন আর্গুমেন্ট হিসাবে গ্রহণ করতে চান কিনা
yourprogram.exe <calendar>
বা ব্যবহারকারী ইনপুটটির জন্য প্রম্পট চয়ন করতে পারেন । - আপনি ধরে নিতে পারেন আপনার প্রোগ্রামটি অবৈধ ইনপুট গ্রহণ করবে না। অবৈধ ইনপুটটিতে ক্যালেন্ডার লেআউট রয়েছে যার জন্য কোনও বছর নেই exists
- সংক্ষিপ্ততম কোড (কোনও বাইটে, কোনও ভাষায়) জিতে যায়।
কোনও অ-মানক কমান্ড-লাইন আর্গুমেন্ট (আর্গুমেন্ট যা সাধারণত স্ক্রিপ্ট চালানোর প্রয়োজন হয় না) মোট অক্ষর গণনার দিকে গণনা করে।
আপনার প্রোগ্রামটি অবশ্যই না করে:
- যে কোনও বাহ্যিক সংস্থান উপর নির্ভর করে।
- একটি নির্দিষ্ট ফাইলের নাম থাকার উপর নির্ভর করে।
- প্রয়োজনীয় আউটপুট ছাড়া অন্য কিছু আউটপুট।
- দৌড়াতে ব্যতিক্রমী দীর্ঘ সময় নিন। যদি আপনার প্রোগ্রামটি একজন গড় বাড়ির ব্যবহারকারীর কম্পিউটারে এক মিনিটেরও বেশি সময় ধরে চলে তবে এটি অবৈধ।
- আপনার প্রোগ্রামটি অবশ্যই এমন একটি প্রোগ্রামিং ভাষায় লেখা উচিত নয় যার জন্য এই চ্যালেঞ্জ পোস্ট হওয়ার আগে প্রকাশ্যে উপলব্ধ সংকলক / দোভাষীর উপস্থিতি ছিল না।
উদাহরণ
ইনপুট:
#####
#######
#######
#######
#####
আউটপুট:
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!