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

C++ কোড: রিকনসাঁস ইউনিট তৈরির উপায় গণনা


মান লক্ষ্য করুন একটি 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

  1. সি++ কোড: রোবটের ফাইনাল পজিশন পাওয়ার জন্য ন্যূনতম স্টেপ গণনা করুন

  2. C++-এ সমতল তলে পারালেলোগ্রাম গণনা: মিডপয়েন্ট পদ্ধতি

  3. C++-এ অ্যারে-এর সব এলিমেন্ট গুণফলের ডিভাইসর (Divisors) সংখ্যা গণনা

  4. C++-এ গ্রে কোড (Gray Code) জেনারেট