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

C++ कोड: कार्ड वितरण का तरीका खोजें ताकि प्रत्येक खिलाड़ी का योग समान हो


मान लीजिए हमारे पास n तत्वों की एक सरणी A है। यहां n सम है। A[i] iवें कार्ड पर लिखी संख्या है। n/2 लोग हैं जो खेल खेलना चाहते हैं। शुरुआत में, प्रत्येक खिलाड़ी दो कार्ड लेगा। हमें कार्ड वितरित करने का तरीका ढूंढना है जैसे कि कार्ड पर लिखे मानों का योग प्रत्येक खिलाड़ी के लिए समान हो।

उदाहरण के लिए, यदि इनपुट A = [1, 5, 7, 4, 4, 3] है, तो आउटपुट [(0, 2), (5, 1), (3, 4)] होगा, क्योंकि A[0] + A[2] = 8, A[5] + A[1] = 8 और A[3] + A[4] = 8।

चरण

इसे हल करने के लिए, हम निम्नलिखित चरणों का पालन करेंगे:

n := size of A Define one array of pairs p of size n for initialize i := 0, when i < n, update (increase i by 1), do:     first element of p[i] := A[i]     second element of p[i]:= i sort the array p, p + n for initialize i := 0, when i < n / 2, update (increase i by 1), do:     print second element of p[i] and second element of p[n - i - 1]

उदाहरण

बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:

#include  using namespace std; void solve(vector A){     int n = A.size();     pair p[n];     for (int i = 0; i < n; i++){         p[i].first = A[i];         p[i].second = i;     }     sort(p, p + n);     for (int i = 0; i < n / 2; i++)         cout << "(" << p[i].second << ", " << p[n - i - 1].second << "), "; } int main(){     vector A = { 1, 5, 7, 4, 4, 3 };     solve(A); }

इनपुट

{ 1, 5, 7, 4, 4, 3 }

आउटपुट

(0, 2), (5, 1), (3, 4),

  1. दिए गए बाइनरी ट्री में सभी दाएं पत्तियों का योग ज्ञात करें C++ में दिए गए बाइनरी ट्री में सभी दाएं पत्तियों का योग ज्ञात करें C++ में

    इस समस्या में, हमें एक बाइनरी ट्री दिया गया है। हमारा कार्य दिए गए बाइनरी ट्री में सभी दाएं पत्तियों का योग ज्ञात करना है। उदाहरण से समझते हैं: इनपुट: आउटपुट: 8 व्याख्या: ट्री के सभी पत्ती नोड्स हैं: 1, 8 योग = 1 + 8 = 9 समाधान दृष्टिकोण समस्या का एक सरल समाधान ट्री को रूट से पत्ती तक ट्रैवर्स करना

  1. दिए गए बाइनरी ट्री में सभी बाएं पत्तियों का योग ज्ञात करें C++ में दिए गए बाइनरी ट्री में सभी बाएं पत्तियों का योग ज्ञात करें C++ में

    इस समस्या में, हमें एक बाइनरी ट्री दिया गया है। हमारा कार्य दिए गए बाइनरी ट्री में सभी बाएं पत्तियों का योग ज्ञात करना है। उदाहरण से समझते हैं: इनपुट:  आउटपुट: 11 व्याख्या: ट्री के सभी पत्ती नोड्स हैं: 2, 9 योग = 2 + 9 = 11 समाधान दृष्टिकोण समस्या का एक सरल समाधान ट्री को रूट से पत्ती तक ट्रैवर

  1. - C/C++ में struct के लिए sizeof, प्रत्येक मेंबर के sizeof के योग के बराबर क्यों नहीं होता?

    स्ट्रक्ट के लिए sizeof और उस स्ट्रक्ट के प्रत्येक मेंबर के sizeof के योग के बीच का अंतर बाइट पैडिंग और अलाइनमेंट के कारण होता है। C/C++ में हर डेटा टाइप की एक अलाइनमेंट आवश्यकता होती है। एक प्रोसेसर की अपनी आर्किटेक्चर की प्रोसेसिंग वर्ड लंबाई होती है। 32 बिट मशीन पर, प्रोसेसिंग वर्ड साइज 4 बाइट्स य