কম্পিউটার

C++ এ টিভি শো


ধরুন আমাদের কাছে টিভি শোগুলির একটি তালিকা এবং সময়কালের আরেকটি তালিকা এবং একটি পূর্ণসংখ্যা k, এখানে দেখায় [i] এবং সময়কাল[i] ith দ্বারা দেখা নাম এবং সময়কাল দেখায় ব্যক্তি, আমাদের k সর্বাধিক দেখা শোগুলির মোট সময়কাল খুঁজে বের করতে হবে৷

সুতরাং, ইনপুটটি যদি শোগুলির মতো হয়:["ক্যাসল প্লে", "ফেয়ারি টেল সিরিজ", "ক্যাসল প্লে", "জেরি মাউস", "রিচ বয়"], সময়কাল:[6, 4 , 6, 14, 5] এবং k =2, তাহলে আউটপুট হবে 26।

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

  • একটি মানচিত্র m

    সংজ্ঞায়িত করুন
  • n :=v

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

    • m[v[i]] :=m[v[i]] + d[i]

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

  • প্রতিটি কী-মানের জোড়ার জন্য এটি m

    • arr

      এর শেষে এর মান সন্নিবেশ করান
  • অ্যারে অ্যারের বিপরীত ক্রমে সাজান

  • ret :=0

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

    • ret :=ret + arr[i]

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

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

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
class Solution {
   public:
   int solve(vector<string>& v, vector<int>& d, int k) {
      map <string, int> m;
      int n = v.size();
      for(int i = 0; i < n; i++){
         m[v[i]] += d[i];
      }
      vector < int > arr;
      for(auto it : m){
         arr.push_back(it.second);
      }
      sort(arr.rbegin(), arr.rend());
      int ret = 0;
      for(int i = 0; i < k; i++){
         ret += arr[i];
      }
      return ret;
   }
};
int main(){
   vector<string> v = {"Castle Play", "Fairy Tale Series", "Castle
   Play", "Jerry Mouse", "Rich Boy"};
   vector<int> v1 = {6, 4, 6, 14, 5};
   Solution ob;
   cout << (ob.solve(v, v1, 2));
}

ইনপুট

{"Castle Play", "Fairy Tale Series", "Castle Play", "Jerry Mouse",
"Rich Boy"}, {6, 4, 6, 14, 5}, 2

আউটপুট

26

  1. C++ এ ডায়াগোনাল ট্রাভার্স II

  2. C++ এ কিল প্রসেস

  3. C++ এ কাঠবিড়ালি সিমুলেশন

  4. C++ এ আয়তক্ষেত্র ক্ষেত্র II