কম্পিউটার

সি প্রোগ্রামে একাধিক অ্যারে রেঞ্জ ইনক্রিমেন্ট অপারেশনের পরে পরিবর্তিত অ্যারে প্রিন্ট করুন।


m পূর্ণসংখ্যা এবং n সহ একটি অ্যারে অ্যারে [m] দেওয়া হয়েছে, যা একটি অ্যারেতে যোগ করা মান এবং r প্রশ্নগুলি কিছু শুরু এবং শেষ সহ দেওয়া হয়েছে। প্রতিটি প্রশ্নের জন্য আমাদের একটি অ্যারেতে শুরু থেকে সীমার শেষ পর্যন্ত n মান যোগ করতে হবে।

উদাহরণ

Input:
arr[] = {1, 2, 3, 4, 5}
query[] = { { 0, 3 }, { 1, 2 } }
n = 2
Output:
If we run above program then it will generate following output:
Query1: { 3, 4, 5, 6, 5 }
Query2: { 3, 6, 7, 6, 5 }

এই প্রোগ্রামটি একটি সহজ পদ্ধতির দ্বারা সমাধান করা যেতে পারে যার মধ্যে −

  • আমরা কোয়েরির স্টার্ট পয়েন্ট থেকে শুরু করে ক্যোয়ারীতে সংরক্ষিত শেষ বিন্দু পর্যন্ত অ্যারে অতিক্রম করে সমস্ত কোয়েরি পুনরাবৃত্তি করব।
  • n-এর মান যোগ করুন এবং অ্যারে প্রিন্ট করুন।

অ্যালগরিদম

START
STEP 1 : DECLARE A STRUCT range for start AND end LIMITS
STEP 2 : IN FUNCTION add_tomatrix(int arr[], struct range r[], int n, int size, int m)
   int i, j, k;
   LOOP FOR i = 0 AND i < m AND i++
      LOOP FOR j = r[i].start AND j<= r[i].end AND j++
         arr[j] = arr[j] + n
      END FOR
      LOOP FOR k = 0 AND k < size AND k++
         PRINT arr[k]
      END FOR
   END FOR
STOP

উদাহরণ

#include <stdio.h>
struct range{
   int start, end; //struct to give the range for the array elements
};
int add_tomatrix(int arr[], struct range r[], int n, int size, int m){
   int i, j, k;
   for ( i = 0; i < m; i++) //for all the elements in a struct we defined{
      for(j = r[i].start; j<= r[i].end; j++) //from where till where we want our results to be updated{
         arr[j] += n; //add the value of the particular range
      }
      printf("Query %d:", i+1);
      for ( k = 0; k < size; k++){
         printf(" %d",arr[k]); // print the whole array after every query
      }
      printf("\n");
   }
}
int main(int argc, char const *argv[]){
   int arr[] ={3, 4, 8, 1, 10};
   struct range r[] = {{0,2}, {1, 3}, {3, 4}};
   int n = 2;
   int size = sizeof(arr)/sizeof(arr[0]);
   int m = sizeof(r)/sizeof(r[0]);
   add_tomatrix(arr, r, n, size, m);
   return 0;
}

আউটপুট

যদি আমরা উপরের প্রোগ্রামটি চালাই তবে এটি নিম্নলিখিত আউটপুট −

তৈরি করবে
Query 1: 5 6 10 1 10
Query 2: 5 8 12 3 10
Query 3: 5 8 12 5 12

  1. একটি অ্যারে প্যালিনড্রোম কিনা তা পরীক্ষা করার জন্য সি প্রোগ্রাম

  2. C প্রোগ্রামে 'X' ফরম্যাটে বিজোড় দৈর্ঘ্যের স্ট্রিং প্রিন্ট করুন।

  3. O(n) সময়ে অ্যারের বাম ঘূর্ণন এবং C প্রোগ্রামে O(1) স্থান মুদ্রণ করুন।

  4. সি প্রোগ্রামে আপেক্ষিক ক্রমে অ্যারের উপাদানগুলির শেষ ঘটনা প্রিন্ট করুন।