মান লক্ষ্য করুন একটি n এলিমেন্টের অ্যারে A, এবং আরেকটি সংখ্যা d। ড্রিমল্যান্ডের আর্মি রেগুলেশন অনুযায়ী, একটি রিকনসাঁস ইউনিটে ঠিক দুইজন সৈনিক থাকবে। যেহেতু এই দুজন সৈনিক বেশি ভিন্ন হওয়া উচিত নয়, তাদের হাইট d সেন্টিমিটারের বেশি পার্থক্য থাকবে না। n জন সৈনিক আছে যাদের হাইট অ্যারে A-তে সংরক্ষিত। কিছু সৈনিকের হাইট একই। আমাদের এই n জন সৈনিক থেকে রিকনসাঁস ইউনিট তৈরির কতগুলো উপায় আছে তা বের করতে হবে।
তাই, যদি ইনপুট হয় A = [10, 20, 50, 60, 65]; d = 10, তবে আউটপুট হবে ৬, কারণ (10, 20), (20, 10), (50, 60), (60, 50), (60, 65), (65, 60) সম্ভাব্য ইউনিট।
ধাপসমূহ
এটি সমাধান করার জন্য, আমরা এই ধাপগুলো অনুসরণ করব −
ans := 0
for initialize i := 1, when i < size of A, update (increase i by 1), do:
for initialize j := 0, when j < i, update (increase j by 1), do:
if |A[i] - A[j]| <= d, then:
(increase ans by 1)
return ans * 2
উদাহরণ
বेहतर বোঝার জন্য ইমপ্লিমেন্টেশন দেখি −
#include <bits/stdc++.h>
using namespace std;
int solve(vector<int> A, int d){
int ans = 0;
for (int i = 1; i < A.size(); i++)
for (int j = 0; j < i; j++)
if (abs(A[i] - A[j]) <= d)
ans++;
return ans * 2;
}
int main(){
vector<int> A = { 10, 20, 50, 60, 65 };
int d = 10;
cout << solve(A, d) << endl;
}
ইনপুট
{ 10, 20, 50, 60, 65 }, 10
আউটপুট
6