কম্পিউটার

একটি ফিল্ম ফেস্টিভ্যালে একজন অংশগ্রহণকারী সম্পূর্ণভাবে কতগুলি সিনেমা দেখতে পারে তা খুঁজে বের করার জন্য C++ প্রোগ্রাম


ধরুন একটি চলচ্চিত্র উৎসব চলছে যেখানে বিভিন্ন দেশের বিভিন্ন চলচ্চিত্র প্রদর্শন করা হবে। এখন, একজন অংশগ্রহণকারী সর্বাধিক সংখ্যক চলচ্চিত্রে উপস্থিত হতে চায় যেগুলি একে অপরের সাথে ওভারল্যাপ করে না এবং তারা কতগুলি চলচ্চিত্রে অংশগ্রহণ করতে পারে তা খুঁজে বের করতে আমাদের তাদের সাহায্য করতে হবে৷

একটি স্ট্রাকচার মুভি আছে যেটিতে নিম্নলিখিত সদস্য রয়েছে -

  • সিনেমার শুরুর সময়।
  • চলচ্চিত্রের সময়কাল।
  • চলচ্চিত্রের শেষ সময়।

নিম্নলিখিত সদস্যদের নিয়ে আরেকটি কাঠামো উৎসব রয়েছে -

  • উৎসবে সিনেমার সংখ্যা।
  • একটি ধরণের মুভি যার আকার উৎসবের মুভির সংখ্যার সমান।

আমাদের দুটি অ্যারে 'টাইম বিগিন' এবং 'সময়কাল' সহ একটি উত্সব অবজেক্ট তৈরি এবং শুরু করতে হবে যাতে যথাক্রমে বেশ কয়েকটি সিনেমার শুরুর সময় এবং সময়কাল থাকে। একটি পূর্ণসংখ্যা n চলচ্চিত্রের মোট সংখ্যা নির্দেশ করে এবং এটি অবজেক্টকে শুরু করতেও ব্যবহৃত হয়। একজন অংশগ্রহণকারী সম্পূর্ণরূপে কতগুলি সিনেমা দেখতে পারে তা গণনা করতে আমরা সেই বস্তুটি ব্যবহার করি৷

সুতরাং, ইনপুট যদি হয় timeBegin ={1, 3, 0, 5, 5, 8, 8}, সময়কাল ={3, 2, 2, 4, 3, 2, 3}, n =7, তাহলে আউটপুট হবে 4

সেই উৎসবে অংশগ্রহণকারীরা মোট 4টি মুভি দেখতে পারবেন।

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

  • স্ট্রাকট মুভি {
    • তিনটি সদস্য ভেরিয়েবল নির্ধারণ করুন সময় শুরু, সময়কাল, সময় শেষ
    • একটি অপারেটর ‘<’ ওভারলোড করুন, এটি একটি মুভি টাইপ ভেরিয়েবলকে অন্যটি গ্রহণ করবে।
      • রিটার্ন টাইমএন্ড
  • স্ট্রাকট ফেস্টিভ্যাল {
    • সদস্য সংখ্যা সংজ্ঞায়িত করুন
    • একটি অ্যারে মুভি সংজ্ঞায়িত করুন যাতে মুভি ধরনের আইটেম থাকে
  • একটি ফাংশন ইনিশিয়ালাইজ () সংজ্ঞায়িত করুন। এটি অ্যারে টাইম শুরু এবং টাইমএন্ড এবং একটি iteger n.
      লাগবে
    • ফিল্ম ফেস্টিভাল :=একটি নতুন ফেস্টিভ্যাল অবজেক্ট
    • চলচ্চিত্র উৎসবের সংখ্যা :=গণনা
    • আরম্ভ করার জন্য i :=0, যখন i <গণনা করুন, আপডেট করুন (i 1 দ্বারা বৃদ্ধি করুন), −
        করুন
      • temp :=সিনেমার একটি নতুন অবজেক্ট
      • time Begin of temp:=timeBegin[i]
      • তাপের সময়কাল:=সময়কাল[i]
      • Time End of temp :=timeBegin[i] + সময়কাল[i]
      • ফিল্মফেস্টিভালের অ্যারে মুভিতে টেম্প ইনসার্ট করুন
    • ফিল্ম ফেস্টিভ্যাল ফেরত
  • একটি ফাংশন সল্ভ() সংজ্ঞায়িত করুন, এটি ফেস্টিভ্যাল ধরনের একটি পরিবর্তনশীল ফেস্ট গ্রহণ করবে,
    • res :=0
    • ফেস্টের অ্যারে সিনেমাগুলি সাজান
    • টাইমএন্ড :=-1
    • আরম্ভ করার জন্য i :=0, যখন i গণনা করুন, আপডেট করুন (i 1 দ্বারা বৃদ্ধি করুন), করুন −
      • যদি সময় শুরু হয় চলচ্চিত্রের [i] উৎসবের>=timeEnd, তাহলে −
        • (1 দ্বারা রেজুলেশন বাড়ান)
        • টাইমএন্ড :=টাইমএন্ড অফ সিনেমা[i] উৎসবের
    • রিটার্ন রিটার্ন

উদাহরণ

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

#include<bits/stdc++.h>

using namespace std;

struct Movie {
   int timeBegin, duration, timeEnd;
   bool operator<(const Movie& another) const {
      return timeEnd < another.timeEnd;
   }
};

struct Festival {
   int count;
   vector<Movie> movies;
};
Festival* initialize(int timeBegin[], int duration[], int count) {
   Festival* filmFestival = new Festival;
   filmFestival->count = count;
   for (int i = 0; i < count; i++) {
      Movie temp;
      temp.timeBegin = timeBegin[i];
      temp.duration = duration[i];
      temp.timeEnd = timeBegin[i] + duration[i];
      filmFestival->movies.push_back(temp);
   }
   return filmFestival;
}
int solve(Festival* fest) {
   int res = 0;
   sort(fest->movies.begin(), fest->movies.end());
   int timeEnd = -1;
   for (int i = 0; i < fest->count; i++) {
      if (fest->movies[i].timeBegin >= timeEnd) {
         res++;
            timeEnd = fest->movies[i].timeEnd;
      }
   }
   return res;
}

int main(int argc, char *argv[]) {
int timeBegin[] = {1, 3, 0, 5, 5, 8, 8};
int duration[] = {3, 2, 2, 4, 3, 2, 3};
Festival * fest;
fest = initialize(timeBegin,duration, 7);
cout << solve(fest) << endl;
return 0;
}

ইনপুট

int timeBegin[] = {1, 3, 0, 5, 5, 8, 8};
int duration[] = {3, 2, 2, 4, 3, 2, 3};
Festival * fest;
fest = initialize(timeBegin,duration, 7);

আউটপুট

4

  1. পাইথনের গোডাউনে কতগুলি বাক্স রাখা যায় তা খুঁজে বের করার প্রোগ্রাম

  2. পাইথন প্রোগ্রাম কত কিউব কাটা হয় তা খুঁজে বের করতে

  3. পাইথনে আমরা কতগুলি জলের বোতল পান করতে পারি তা খুঁজে বের করার প্রোগ্রাম

  4. পাইথনে আমরা কতগুলো উপায়ে সিঁড়ি বেয়ে উঠতে পারি তা খুঁজে বের করার প্রোগ্রাম