একটি সীমা 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