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

C++ में ऑनलाइन इलेक्शन (Online Election)


मान लीजिए एक चुनाव में, i-वां वोट persons[i] को समय times[i] पर डाला गया था। अब, हमें निम्न क्वेरी फंक्शन लागू करना है: TopVotedCandidate.q(int t) यह समय t पर चुनाव का नेतृत्व करने वाले व्यक्ति की संख्या खोजेगा। समय t पर डाले गए वोट हमारी क्वेरी में गिने जाएंगे। यदि टाई है, तो सबसे हालिया वोट (टाई किए गए उम्मीदवारों में से) जीतता है।

समाधान दृष्टिकोण

  1. दो मैप्स m और count बनाएं

  2. इनिशियलाइज़र में: लीडर ट्रैक करें, प्रत्येक समय पर लीडर को m में स्टोर करें

  3. q() में: t का अपर बाउंड घटाकर संबंधित मान लौटाएं

C++ कार्यान्वयन

#include <bits/stdc++.h> 
using namespace std; 

class TopVotedCandidate { 
public: 
    map<int, int> m; 
    map<int, int> count; 
    
    TopVotedCandidate(vector<int>& persons, vector<int>& times) { 
        int lead = -1; 
        for(int i = 0; i < times.size(); i++){ 
            int x = times[i]; 
            count[persons[i]]++; 
            if(count[lead] <= count[persons[i]]){ 
                lead = persons[i]; 
                m[x] = lead; 
            }else{ 
                m[x] = lead; 
            } 
        } 
    } 
    
    int q(int t) { 
        return ((--m.upper_bound(t))->second); 
    } 
}; 

int main(){ 
    vector<int> v1 = {0,1,1,0,0,1,0}, v2 = {0,5,10,15,20,25,30}; 
    TopVotedCandidate ob(v1, v2); 
    cout << (ob.q(3)) << endl; 
    cout << (ob.q(12)) << endl; 
    cout << (ob.q(25)) << endl; 
    cout << (ob.q(15)) << endl; 
    cout << (ob.q(24)) << endl; 
    cout << (ob.q(8)) << endl; 
    return 0; 
}

इनपुट

Initialize with [0,1,1,0,0,1,0] and [0,5,10,15,20,25,30]. Call q(): q(3) q(12) q(25) q(15) q(24) q(8)

आउटपुट

0 1 1 0 0 1
  1. - C++ में Switch स्टेटमेंट: एक पूर्ण गाइड

    C++ में Switch स्टेटमेंट का उपयोग कैसे करें कंडीशनल स्टेटमेंट्स सभी प्रोग्रामिंग भाषाओं की एक सामान्य विशेषता हैं। इन स्टेटमेंट्स का उपयोग प्रोग्राम के प्रवाह को नियंत्रित करने और यह निर्दिष्ट करने के लिए किया जाता है कि कोड के विशिष्ट ब्लॉक्स कब निष्पादित होने चाहिए। C++ में उपयोग किए जाने वाले मुख

  1. - C++ में मितव्ययी संख्या (Frugal Number)

    इस समस्या में, हमें एक धनात्मक पूर्णांक N दिया गया है। हमारा कार्य यह जांचने के लिए एक प्रोग्राम बनाना है कि दी गई संख्या मितव्ययी संख्या है या नहीं। मितव्ययी संख्या (FRUGAL NUMBER) − एक संख्या जिसके अंकों की संख्या उस संख्या के अभाज्य गुणनखंडन में अंकों की संख्या से सख्ती से अधिक है। उदाहरण &

  1. C++ में पेंटाटोप संख्या C++ में पेंटाटोप संख्या

    एक पेंटाटोप संख्या को पास्कल के त्रिभुज में पांचवीं संख्या के रूप में वर्णित किया गया है। अब, चूंकि यह पांचवीं संख्या है, इसका मतलब है कि पास्कल के त्रिभुज में कम से कम पांच संख्याएं होनी चाहिए, इसलिए इस श्रृंखला की पहली संख्या 1 4 6 4 1 से शुरू होती है जो पास्कल के त्रिभुज की चौथी पंक्ति है। तो, इस