কম্পিউটার

C++ এ কর্মচারীর ফ্রি সময়


ধরুন আমরা কর্মচারীদের সময়সূচির একটি তালিকা দিয়েছি; এটি প্রতিটি কর্মচারীর কাজের সময়কে প্রতিনিধিত্ব করে। এখন ধরুন প্রতিটি কর্মচারীর অ-ওভারল্যাপিং ইন্টারভ্যালের একটি তালিকা আছে, এই ব্যবধানগুলি সাজানো হয়েছে। আমাদের সীমিত ব্যবধানের তালিকা খুঁজে বের করতে হবে যা সকল কর্মচারীদের জন্য সাধারণ, ইতিবাচক-দৈর্ঘ্যের বিনামূল্যের সময়কে প্রতিনিধিত্ব করে, এবং এটিও সাজানো ক্রমে হবে। আমরা ইন্টারভালগুলিকে [x, y] ফর্মে উপস্থাপন করছি, উদাহরণস্বরূপ, সময়সূচী [0][0].start =1, সময়সূচী[0][0].end =2।

সুতরাং, যদি ইনপুট শিডিউল =[[[1,2],[5,6]],[[1,3]],[[4,10]]] এর মত হয়, তাহলে আউটপুটের একটি হবে [[ 3,4]]।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • একটি 2D অ্যারে v

    সংজ্ঞায়িত করুন
  • আরম্ভ করার জন্য i :=0, যখন i <সময়সূচীর আকার, আপডেট (i 1 দ্বারা বাড়ান), করবেন

    • j শুরু করার জন্য :=0, যখন j <সময়সূচীর আকার[i], আপডেট করুন (j 1 দ্বারা বৃদ্ধি করুন), করুন

      • v

        এর শেষে সময়সূচী[i, j] সন্নিবেশ করান
  • অ্যারে সাজান v

  • একটি 2D অ্যারে ret সংজ্ঞায়িত করুন

  • একটি অ্যারে তাপমাত্রা সংজ্ঞায়িত করুন :=v[0]

  • আরম্ভ করার জন্য i :=0, যখন i

    • যদি temp[0]

      • ret এর শেষে {temp[1], v[i, 0]} ঢোকান

      • temp :=v[i]

    • অন্যথায়

      • temp :=(যদি temp[1]

  • রিটার্ন রিটার্ন

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

উদাহরণ

#include  namespace ব্যবহার করে std;void print_vector(vector> v){ cout <<"["; for(int i =0; i a, ভেক্টর b){ ফেরত a[0] > কর্মচারী ফ্রি টাইম(ভেক্টর<ভেক্টর<ভেক্টর>> সময়সূচী) { ভেক্টর<ভেক্টর> v; (int i =0; i > ret; ভেক্টর temp =v[0]; (int i =0; i >> v ={{{1,2},{5,6}},{{1,3}},{{4,10}}}; print_vector(ob.employeeFreeTime(v));}

ইনপুট

{{{1,2},{5,6}},{{1,3}},{{4,10}}}

আউটপুট

<প্রে>[[2, 1, ],[2, 1, ],[3, 4, ],[10, 5, ],]
  1. C++ এ 2D ভেক্টর সমতল করুন

  2. C++ এ পরবর্তী নিকটতম সময়

  3. C++ এ অনন্য ভগ্নাংশ

  4. C/C++ এ বার্কলের অ্যালগরিদম