কম্পিউটার টিউটোরিয়াল

সি++ কোড: কার্ড বন্টন করে প্রতিটি খেলাড়ির যোগফল সমান করুন

একটি অ্যারে A দেওয়া আছে n উপাদানের সাথে (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 := A.size()
pairs p[n] অ্যারে
for i := 0 to n-1:
    p[i].first = A[i]
    p[i].second = i
sort(p, p+n)
for i := 0 to n/2-1:
    print p[i].second, p[n-i-1].second

সি++ কোড উদাহরণ

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

void solve(vector<int> 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<int> A = {1,5,7,4,4,3};
    solve(A);
}

ইনপুট

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

আউটপুট

(0, 2), (5, 1), (3, 4),
  1. বাইনারি ট্রিতে সকল ডান পাতা নোডের যোগফল বের করা C++-এ

  2. বাইনারি ট্রিতে সকল বাম পাতা নোডের যোগফল বের করা C++-এ

  3. C++ ব্যবহার করে n-র চেয়ে ছোট বা সমান সব ফ্যাক্টোরিয়াল নম্বর বের করা

  4. কেন C/C++-এ struct-এর sizeof মেম্বারগুলোর sizeof-এর যোগফলের সমান নয়?