একটি অ্যারে 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),