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

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


সমস্যা অনুযায়ী, একটি সেট arr[n] দেওয়া আছে (n = ইন্টিজার এলিমেন্টের সংখ্যা)। টাস্ক হলো সেটের এলিমেন্টগুলো থেকে বের করা যাবে সর্বোচ্চ কতগুলো ডISTINCT ডিফারেন্স এলিমেন্ট (|a-b| রূপে) যা সেটে ইতিমধ্যে নেই। অর্থাৎ, সেটে থাকা এলিমেন্টগুলোর পার্থক্য থেকে সর্বোচ্চ সংখ্যক ডISTINCT এবং বড় পার্থক্য বের করা।

ইনপুট − set = {1, 5}

আউটপুট − Maximum difference elements that can added to a set is: 1

ব্যাখ্যা − সেটে শুধু একটি পার্থক্য: |1-5| = 4

ইনপুট − set = {2, 7, 1, 9}

আউটপুট − Maximum difference elements that can added to a set is: 5

ব্যাখ্যা − পার্থক্যগুলো:

|2-7|=5, |7-1|=6, |1-9|=8, |2-9|=7, |7-9|=2

প্রোগ্রামে ব্যবহৃত পদ্ধতি

  • ইন্টিজার অ্যারে arr[n] ইনপুট নিন।
  • maximum() ফাংশনে:
    • ele, temp, val = arr[0] দিয়ে ইনিশিয়ালাইজ করুন।
    • লুপ চালিয়ে সব এলিমেন্টের GCD বের করুন (val = gcd(val, arr[i]))।
    • temp = max(temp, arr[i]) দিয়ে সর্বোচ্চ মান বের করুন।
    • total = temp / val এবং max = total - size।
    • max রিটার্ন করুন।

উদাহরণ

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

int maximum(int arr[], int size) {
    int ele = arr[0];
    int val = ele;
    int temp = ele;
    for (int i = 1; i < size; i++) {
        val = __gcd(val, arr[i]);
        temp = max(temp, arr[i]);
    }
    int total = temp / val;
    int max = total - size;
    return max;
}

int main() {
    int arr[] = {2, 7, 1, 9};
    int size = sizeof(arr)/sizeof(arr[0]);
    cout << "Maximum difference elements that can added to a set is: " << maximum(arr, size);
    return 0;
}

আউটপুট

Maximum difference elements that can added to a set is: 5
  1. C++-এ ম্যাট্রিক্স-এ ৪টি আডজেসেন্ট এলিমেন্টের সর্বোচ্চ গুণফল বের করার প্রোগ্রাম

  2. সি++-এ আলাদা আলাদা সর্ট করে পুরো অ্যারে সর্টেড বানানো যাবে এমন সর্বোচ্চ পার্টিশন গণনা

  3. C++-এ সেভেন সেগমেন্ট ডিসপ্লেতে N সেগমেন্ট দিয়ে প্রদর্শনযোগ্য সর্বোচ্চ সংখ্যা

  4. C++-এ N*N চেসবোর্ডে সর্বোচ্চ বিশপ বসানো