অফিসে জন্মদিনের পার্টিকে একীভূত করে একটি অফিস (যাকে একে "দ্য অফিস" বলুন) ব্যর্থ সময় হ্রাস করতে যাচ্ছে। একই সপ্তাহের সোমবার থেকে শুক্রবার (অন্তর্ভুক্ত) এর মধ্যে জন্মদিনের সাথে যে কোনও দু'জন লোক সেই সপ্তাহের কিছু সময় একটি ভাগ করে নেওয়া জন্মদিনের পার্টির সাথে উদযাপিত হবে । যাদের জন্মদিন শনিবার বা রবিবারে আসে তারা কোনও দিনই কোনও পার্টি পায় না।
কিছু লোক তাদের আসল জন্মদিনটি ভাগ করে না এমন লোকদের সাথে জন্মদিনের অনুষ্ঠান ভাগ করে নিতে পছন্দ করে না। তারা থাকবে খুব রেগে একটি আছে ভাগ জন্মদিনের পার্টি ।
আমরা একটি অফিস অনুকরণ করতে যাচ্ছি এবং প্রথম সপ্তাহে খুঁজে পেতে যাচ্ছি যাতে কেউ তাদের ভাগ করে নেওয়া বার্থডে পার্টি সম্পর্কে খুব ক্ষুব্ধ হয় ।
চ্যালেঞ্জ
এমন একটি প্রোগ্রাম বা ফাংশন লিখুন যা 2019 এর জন্য প্রথম আইএসও সপ্তাহের আউটপুট দেয় যার মধ্যে একটি সিমুলেটেড অফিসের কেউ তাদের শেয়ারড বার্থডে পার্টি সম্পর্কে খুব ক্ষুব্ধ হন, নিম্নলিখিত বুনিয়াদি বিধিগুলির অধীন:
- একটি পূর্ণসংখ্যা এন > 1 ইনপুট করুন , যা অফিসে কর্মীদের সংখ্যা।
- এন জন্মদিন নিজেদের 31 ডিসেম্বর 1 জানুয়ারী থেকে এলোমেলোভাবে অবিশেষে বিতরণ করা হয় (এড়িয়ে 29 ফেব্রুয়ারী)।
- তবে শেয়ারড বার্থডে পার্টির নির্ধারণের লক্ষ্যে কার্যদিবস হ'ল 2019-এর আইএসও সপ্তাহের তারিখ, যা 2019-W01-1 (2018-12-31) এবং 2019-W52-7 (2019-12-29) এর মধ্যে থাকে। প্রতি সোমবার একটি নতুন আইএসও সপ্তাহ শুরু হয়। (আমি মনে করি এই চ্যালেঞ্জের জন্য আইএসও সপ্তাহ সম্পর্কে আপনার সত্যই জেনে রাখা দরকার)
- অফিসে এন ব্যক্তিদের জন্য , প্রত্যেকের একটি খুব অ্যাগ্রি শেয়ার্ড বার্থডে পার্টির ব্যক্তিত্বের ধরণের থাকার 1/3 সুযোগ রয়েছে , তাই আপনাকে এটিও অনুকরণ করতে হবে।
- তবে পার্টি একই জন্মদিনের লোকদের সাথে ভাগ করে নিলে তারা রাগ করবে না ।
- খুব ক্ষুব্ধ ব্যক্তির প্রথম ঘটনার জন্য আইএসও সপ্তাহের সংখ্যা নির্ধারণ করুন (সপ্তাহের সংখ্যাটি পরিষ্কার হওয়ার সাথে সাথে এর জন্য সঠিক বিন্যাসটি নমনীয়) । যদি কোনও রাগী লোক না থাকে তবে আপনি এমন কোনও আউটপুট দিতে পারেন যা কোনও আইএসও সপ্তাহে বিভ্রান্ত নয় বা প্রোগ্রামটি ত্রুটিযুক্ত করতে পারে ইত্যাদি can
কিছু সরলকরণ অনুমান:
- যেমনটি আমি উল্লেখ করেছি, ২৯ শে ফেব্রুয়ারির ইস্যুটিকে সম্পূর্ণ উপেক্ষা করুন (একটি অনিবদ্ধ জটিলতা)
- সরকারী ছুটির দিনগুলি উপেক্ষা করুন (এটি একটি আন্তর্জাতিক সম্প্রদায় তাই আমাদের ছুটিগুলি পৃথক হবে) এবং কেবল ধরে নিন যে প্রতি সপ্তাহে অফিস খোলা রয়েছে।
বিধি
এটি কোড-গল্ফ। প্রতিটি ভাষার জয়ের জন্য বাইটের মধ্যে সংক্ষিপ্ত উত্তর। ডিফল্ট লফোলগুলি নিষিদ্ধ।
কোড ব্যাখ্যা স্বাগত জানাই।
কাজের উদাহরণ
ইনপুট এন = with সহ প্রথম অংশযুক্ত উদাহরণ 1 টি নিয়মতে বর্ণিত হিসাবে প্রথম এবং দ্বিতীয় কলামগুলি এলোমেলো (তবে বাস্তবে অবশ্যই এখানে এলোমেলো নয়)।
Angry Type
Person? Birthday ISO Week Comment
================================================================================
N 2018-12-31 W01 In the 2019 ISO week date year
Y 2018-12-31 W01 Same birthday, so no anger happens
N 2019-02-05 W06
Y 2019-03-15 W11 No anger happens because other W11 b-day is a Saturday
N 2019-03-16 W11
N 2019-09-08 W36 My birthday!
Y 2019-12-30 - Not in the 2019 ISO week date year
তাই কোনও রাগ হয় না। প্রোগ্রাম বা ফাংশনটি কোনও ISO সপ্তাহের নম্বর নিয়ে বিভ্রান্ত না হয়ে এমন কিছু আউটপুট বা আউটপুট করতে পারে।
উদাহরণস্বরূপ এন সাথে অনির্দিষ্ট 2 ।
Angry Type
Person? Birthday ISO Week Comment
================================================================================
N 2019-01-19 W03
Y 2019-02-04 W06
N 2019-02-05 W06 No anger because not an angry person
... ... ... (No angry people until...)
Y 2019-03-12 W11 Very Angry Person!
N 2019-03-14 W11
... ... ... ...
আউটপুট W11
বা সমতুল্য কিছু হবে ।