यहां हम एक समस्या देखेंगे। हमारे पास एक बाइनरी सरणी है। इसमें एन तत्व होते हैं। प्रत्येक तत्व या तो 0 या 1 होगा। प्रारंभ में, सभी तत्व 0 हैं। अब हम M कमांड प्रदान करेंगे। प्रत्येक कमांड में स्टार्ट और एंड इंडेक्स होंगे। तो कमांड (ए, बी) यह संकेत दे रहा है कि कमांड को स्थिति ए पर तत्व से स्थिति बी पर लागू किया जाएगा। कमांड मानों को टॉगल करेगा। तो यह एथ इंडेक्स से बीटीएच इंडेक्स में टॉगल करेगा। यह समस्या सरल है। अवधारणा प्राप्त करने के लिए एल्गोरिथ्म की जाँच करें।
एल्गोरिदम
toggleCommand(arr, a, b)
Begin for each element e from index a to b, do toggle the e and place into arr at its position. done End
उदाहरण
#include <iostream> using namespace std; void toggleCommand(int arr[], int a, int b){ for(int i = a; i <= b; i++){ arr[i] ^= 1; //toggle each bit in range a to 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); }
आउटपुट
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1 0