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

प्रत्येक खिलाड़ी के लिए सभी योग समान बनाने के लिए कार्ड स्प्रेड तरीका खोजने के लिए C++ कोड

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

इसलिए, यदि इनपुट A =[1, 5, 7, 4, 4, 3] जैसा है, तो आउटपुट [(0, 2), (5, 1), (3, 4)] होगा, क्योंकिA[ 0] + ए[2] =8, ए[5] + ए[1] =8 और ए[3] + ए[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 <bits/stdc++.h>
using namespace std;
void solve(vector<int> A){
   int n = A.size();
   pair<int, int> 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<int> A = { 1, 5, 7, 4, 4, 3 };
      solve(A);
   }

इनपुट

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

आउटपुट

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

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

    इस समस्या में हमें एक बाइनरी ट्री दिया जाता है। हमारा काम है किसी दिए गए बाइनरी ट्री में सभी बाएँ दाएँ का योग ज्ञात करना । समस्या को समझने के लिए एक उदाहरण लेते हैं, इनपुट : आउटपुट :8 स्पष्टीकरण - All leaf nodes of the tree are : 1, 8 Sum = 1 + 8 = 9 समाधान दृष्टिकोण समस्या का एक सरल समाधान

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

    इस समस्या में हमें एक बाइनरी ट्री दिया जाता है। हमारा काम है किसी दिए गए बाइनरी ट्री में सभी बाईं पत्तियों का योग ज्ञात करना । समस्या को समझने के लिए एक उदाहरण लेते हैं, इनपुट: आउटपुट:11 स्पष्टीकरण - All leaf nodes of the tree are : 2, 9 Sum = 2 + 9 = 11 समाधान दृष्टिकोण समस्या का एक सरल समाधा

  1. सी/सी++ में प्रत्येक सदस्य के आकार के योग के बराबर संरचना के लिए आकार क्यों नहीं है?

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