ওহ, মানুষ, এই মেয়াদ শেষ হওয়ার তারিখটি চিঠিপত্র সহ কয়েক মাস লিখবে না! এটি 10 ই মার্চ বা 3 শে অক্টোবর শেষ হচ্ছে কিনা তা আমি বলতে পারব না ... অপেক্ষা করুন, না, কিছু মনে করবেন না, বছরটি ২০১২ বলে। (অ্যালি-ওফস পাত্রে অর্ধ-ব্যবহৃত ইট কোনও প্রকার পছন্দ করতে পারে)
সুতরাং আসুন এক মুহুর্তের জন্য ধরুন যে আপনি যখন মারিনার এই জারটির মেয়াদ শেষ হওয়ার কথা রয়েছে তখন যুক্তি খুঁজে বের করতে খুব ব্যস্ত হয়ে পড়ুন। আপনি কেবল ক্লিফ নোট সংস্করণটি চান: এটি সম্ভবত হয়ে যাওয়ার সম্ভাবনা কতটা? আসুন কিছু কোড লিখি!
আপনি জানেন যে নির্মাতারা তিনটি বিন্যাসের মধ্যে একটিতে আদেশকৃত ট্রিপল হিসাবে পূর্ণসংখ্যার তারিখটি মুদ্রণ করে:
YEAR MONTH DAY
MONTH DAY YEAR
DAY MONTH YEAR
এবং আপনি জানেন যে কিছু তারিখ কেবল একটি বা দুটি উপায়ে ব্যাখ্যা করা যেতে পারে, তিনটিই নয়: 55-11-5
ত্রিংকিসের এই বিশেষ বাক্সটির অর্থ 55 নম্বরের একটি বছর হতে হবে, নভেম্বর 5, 1955-এ মেয়াদ শেষ হয়েছিল। বছরটি কখনও কখনও চার অঙ্কে দেওয়া হয় এবং দুটি নয়, যা কিছু বিকল্পকে বাতিল করতে পারে। এটি যখন দুটি অঙ্ক, যদিও, 50..99 অর্থ 1950..1999 এবং 0..49 অর্থ 2000..2049।
আপনার কাজটি এমন একটি প্রোগ্রাম বা ফাংশন লিখতে হবে যা একটি পূর্ণসংখ্যার অ্যারে নেয় যা উপরোক্ত ব্যাখ্যার অন্তত একটিতে বৈধ তারিখ এবং এটি এখনও ভাল হওয়ার শতভাগ সুযোগকে সরিয়ে দেয়। শতকরা সুযোগটি কেবল আজকের তারিখের চেয়ে বা তার পরে যে তারিখের বৈধ ব্যাখ্যার শতাংশ ।
পূর্ণসংখ্যার অ্যারেটি আপনার ভাষার [Int]
দৈর্ঘ্যের ধরণের তিনটি হবে যদি এটি কোনও ফাংশনের পক্ষে যুক্তিযুক্ত হয় এবং ড্যাশ-, স্ল্যাশ- বা স্থান দ্বারা পৃথক করা হয় (আপনি চয়ন করতে পারেন) যদি STDIN এ ইনপুট হিসাবে ব্যবহৃত হয় তবে পুরো প্রোগ্রাম। *
"আজকের তারিখ" আজকের আসল তারিখ হতে পারে, যেমন কোনও তারিখ ফাংশনের মাধ্যমে প্রাপ্ত হয়, বা এসটিডিআইএন-এ অতিরিক্ত প্যারামিটারে কাজ করার জন্য অতিরিক্ত যুক্তিতে প্রদত্ত তারিখ। এটি ইউনিক্স যুগের সেকেন্ডে হতে পারে, উপরের তিনটি উপায়ের মধ্যে একটি বা আরও একটি সুবিধাজনক ফ্যাশনে আরও একটি বছর-মাস-দিনের ট্রিপল প্রবেশ করেছে।
আসুন কিছু উদাহরণ আছে! মেয়াদ শেষ হওয়ার তারিখ ইনপুট ড্যাশ-বিচ্ছিন্ন শৈলীতে থাকবে এবং নীচের উদাহরণগুলির জন্য ধরে নিই যে আজকের তারিখটি July ই জুলাই, ২০০ 2006।
14-12-14
- এটির (ডিএমওয়াই এবং ওয়াইএমডি) উভয় বৈধ ব্যাখ্যাই সমান, 14 ডিসেম্বর, 2014. আউটপুট 100 কারণ এই পণ্যটি এখনও অবশ্যই ভাল।8-2-2006
- শেষ সংখ্যাটি অবশ্যই এক বছর, যেহেতু এর চারটি সংখ্যা রয়েছে। এটি 8 ই ফেব্রুয়ারী (মেয়াদোত্তীর্ণ) অথবা 2 শে আগস্ট (এখনও ভাল) হতে পারে। আউটপুট 50 ।6-7-5
- এটা কিছু হতে পারে! "5 জুলাই, 2006" ব্যাখ্যাটি এখনও ভাল (কেবলমাত্র এক দিনের জন্য), তবে বাকী দুটোই ২০০৫ সালে এবং যত তাড়াতাড়ি সম্ভব টস করা উচিত। আউটপুট 33 ।6-5-7
- এখানে, তিনটির মধ্যে দুটি ব্যাখ্যা নিরাপদ। আপনি আপনার দশমিক উপরে বা নীচে গোল করতে পারেন, সুতরাং 66 বা 67 উভয়ই ঠিক আছে।12-31-99
- ঠিক আছে, এই একটি শতাব্দীর শুরু থেকেই নির্বিঘ্নে (50 থেকে 99 বছর 19XX, এবং 31 সম্ভবত একটি মাস হতে পারে না)। একটি বড় ফ্যাট 0 , এবং আপনার প্রকৃতপক্ষে আরও বেশি বার আপনার ফ্রিজ পরিষ্কার করা উচিত।
আপনি নিরাপদে ধরে নিতে পারেন যে উপরের মানগুলি পূরণ করে না এমন কোনও ইনপুট উপরের আউটপুট নিয়মগুলিতে গোপনীয় নয়।
কোনও ওয়েব অনুরোধ বা মানক লুফোল নেই। তারিখ পরিচালনার লাইব্রেরি অনুমোদিত। এটি কোড গল্ফ: সংক্ষিপ্ততম প্রোগ্রামের জয় হোক।
* আপনি যদি ব্রেইনফাক বা কিছু অনুরূপ ডেটাটাইপ-প্রতিবন্ধী ভাষা ব্যবহার করছেন তবে আপনি ইনপুটতে প্রথম তিনটি অক্ষরের ASCII মান ধরে নিতে পারেন যে তারিখের পূর্ণসংখ্যা। এটি অবশ্যই চার-অঙ্কের বছরের যুক্তি বাদ দেয় না, তবে আমি মনে করি ব্রেইনফাকের কোনও সমাধান না দেখে এটির জন্য আপনাকে সামান্য বলার জন্য আমরা খুব অবাক হয়ে যাব।