Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

सी++ में टीवी शो


मान लीजिए कि हमारे पास टीवी शो की एक सूची है, और अवधि की एक और सूची है, और एक पूर्णांक k, यहां दिखाता है [i] और अवधि [i] ith द्वारा देखे गए नाम और अवधि को दर्शाता है व्यक्ति, हमें k सबसे अधिक देखे जाने वाले शो की कुल अवधि ज्ञात करनी होगी।

तो, यदि इनपुट शो की तरह है:["कैसल प्ले", "फेयरी टेल सीरीज़", "कैसल प्ले", "जेरी माउस", "रिच बॉय"], अवधि:[6, 4 , 6, 14, 5] और k =2, तो आउटपुट 26 होगा।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • एक नक्शा परिभाषित करें मी

  • n:=वी का आकार

  • इनिशियलाइज़ i :=0 के लिए, जब i

    • एम[वी[i]]:=एम[वी[i]] + डी[i]

  • एक सरणी गिरफ्तारी परिभाषित करें

  • प्रत्येक कुंजी-मान युग्म के लिए इसे m

    • गिरफ्तारी के अंत में इसका मूल्य डालें

  • सरणी को उल्टे क्रम में क्रमबद्ध करें

  • रिट:=0

  • इनिशियलाइज़ करने के लिए मैं :=0, जब i

    • रिट :=रिट + एआर [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. सी ++ में प्रक्रिया को मारें

    मान लीजिए कि हमारे पास n प्रक्रियाएं हैं, यहां प्रत्येक प्रक्रिया की एक विशिष्ट आईडी होती है जिसे PID या प्रक्रिया आईडी कहा जाता है और उसका PPID (पैरेंट प्रोसेस आईडी) भी होता है। प्रत्येक प्रक्रिया में केवल एक पैरेंट प्रक्रिया होती है, लेकिन इसमें एक या अधिक चाइल्ड प्रक्रियाएं हो सकती हैं। यह एक प

  1. सी ++ में गिलहरी सिमुलेशन

    एक पेड़, एक गिलहरी, और कई नट हैं। स्थितियों को 2डी ग्रिड में कोशिकाओं द्वारा दर्शाया जाता है। आपका लक्ष्य गिलहरी के लिए सभी नटों को इकट्ठा करने और उन्हें एक-एक करके पेड़ के नीचे रखने के लिए न्यूनतम दूरी का पता लगाना है। गिलहरी एक समय में केवल एक अखरोट ले सकती है और चार दिशाओं में - ऊपर, नीचे, बाएँ औ

  1. C++ में आयत क्षेत्र II

    मान लीजिए कि हमारे पास (अक्ष-संरेखित) आयतों की एक सूची है। यहाँ प्रत्येक आयत [i] ={x1, y1, x2, y2}, जहाँ (x1, y1) निचले-बाएँ कोने का बिंदु है, और (x2, y2) ऊपरी-दाएँ कोने के बिंदु हैं आयत। हमें समतल में सभी आयतों द्वारा कवर किया गया कुल क्षेत्रफल ज्ञात करना है। उत्तर बहुत हो सकता है, इसलिए हम मॉड्यू