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

C++-এ [-k, +k] সীমার ভিতরে থাকার জন্য পজিটিভ/নেগেটিভ মুভ প্রিন্ট করুন

একটি সীমা K এবং পজিটিভ সংখ্যার একটি অ্যারে দেওয়া আছে। প্রতিটি সংখ্যা বা পজিটিভ বা नेগেটিভ ডিরেকশনে মুভ করতে হবে যেন পজিশন সবসময় [-K, +K] রেঞ্জের ভিতরে থাকে। মুভের সিকোয়েন্স প্রিন্ট করুন।

উদাহরণ: K=56, অ্যারে: [25, 14, 31, 16, 5] → আউটপুট: POSITIVE POSITIVE NEGATIVE POSITIVE POSITIVE

গ্রিডি চেক

প্রতিটি স্টেপে: করেন্ট পজিশন + a[i] <= K হলে POSITIVE, নয় তবে করেন্ট - a[i] >= -K হলে NEGATIVE, দুটোই না হলে "NO MORE VALID MOVES"।

উদাহরণ কোড
#include <iostream>
using namespace std;

void StepsTaken(int a[], int n, int k) {
    int position = 0;
    for (int i = 0; i < n; i++) {
        if (position + a[i] <= k && position + a[i] >= -k) {
            position += a[i];
            cout << "POSITIVE \t";
        } else if (position - a[i] >= -k && position - a[i] <= k) {
            position -= a[i];
            cout << "NEGATIVE \t";
        } else {
            cout << -1;
            return;
        }
    }
}

int main() {
    int a[] = {12, 24, 9, 17, 8};
    int n = sizeof(a) / sizeof(a[0]);
    int k = 40;
    StepsTaken(a, n, k);
    return 0;
}
আউটপুট
POSITIVE   POSITIVE   NEGATIVE    NEGATIVE   POSITIVE
  1. C++-এ একটি অ্যারে পুনর্বিন্যাস করুন যাতে arr[i] = i হয়

  2. C++-এ আয়তক্ষেত্রের পাশের অনুপাত একটি রেঞ্জে আছে সেটির সংখ্যা গণনা

  3. বাইনারি ট্রিতে সর্বোচ্চ সাব-ট্রি যোগফল যেটি BST ও (C++ প্রোগ্রাম)

  4. C++-এ গ্রিডের মধ্যে নির্দিষ্ট দিকচালনের সম্ভাব্য মোভ সংখ্যা গণনা