यहां हम एक समस्या देखेंगे। हमारे पास एक बाइनरी ऐरे है। इसमें n तत्व हैं। प्रत्येक तत्व या तो 0 या 1 होगा। प्रारंभ में, सभी तत्व 0 हैं। अब हम M कमांड प्रदान करेंगे। प्रत्येक कमांड में प्रारंभ और अंत सूचकांक होंगे। कमांड(a, b) इंगित करता है कि कमांड स्थिति a पर स्थित तत्व से स्थिति b पर स्थित तत्व पर लागू होगी। कमांड मानों को टॉगल करेगी। तो यह a-वें सूचकांक से b-वें सूचकांक तक टॉगल करेगी। यह समस्या सरल है। अवधारणा प्राप्त करने के लिए एल्गोरिदम देखें।
एल्गोरिदम
toggleCommand(arr, a, b)
शुरुआत
इंडेक्स a से b तक प्रत्येक तत्व e के लिए करें
e को टॉगल करें और इसे इसकी स्थिति पर arr में रखें
पूर्ण
समाप्त
उदाहरण
#include <iostream>
using namespace std;
void toggleCommand(int arr[], int a, int b) {
for (int i = a; i <= b; i++) {
arr[i] ^= 1; // रेंज a से b में प्रत्येक बिट को टॉगल करें
}
}
void display(int arr[], int n) {
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
}
int main() {
int arr[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
int n = sizeof(arr) / sizeof(arr[0]);
display(arr, n);
toggleCommand(arr, 3, 6);
toggleCommand(arr, 8, 10);
toggleCommand(arr, 2, 7);
display(arr, n);
return 0;
}
आउटपुट
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1 0