কম্পিউটার

C++ এ পরিসীমা সংযোজন II


ধরুন আমাদের একটি m * n ম্যাট্রিক্স আছে যার নাম M এবং এটি সমস্ত 0 এর সাথে আরম্ভ করা হয়েছে এবং আমাদের বেশ কয়েকটি আপডেট অপারেশনও রয়েছে। এখন, অপারেশনগুলি একটি 2D অ্যারে দ্বারা প্রতিনিধিত্ব করা হয়, এবং প্রতিটি ক্রিয়াকলাপ দুটি ধনাত্মক পূর্ণসংখ্যা x এবং y সহ একটি অ্যারে দ্বারা প্রতিনিধিত্ব করা হয়, এর মানে হল 0 থেকে a - এর মধ্যে থাকা সমস্ত মানের জন্য M[i][j] যোগ করা উচিত। 1 এবং সমস্ত মান j রেঞ্জ 0 থেকে b - 1। আমাদের সমস্ত ক্রিয়াকলাপ সম্পাদন করার পরে ম্যাট্রিক্সে সর্বাধিক পূর্ণসংখ্যার গণনা খুঁজে বের করতে হবে।

সুতরাং, যদি ইনপুট হয় m =3, n =3 এবং অপারেশন =[[2,2],[3,3]]., তাহলে আউটপুট হবে 4,

প্রাথমিকভাবে ম্যাট্রিক্স হল

এর মত
0 0 0
0 0 0
0 0 0

[2,2] পারফর্ম করার পর, আমরা পাব

1 1 0
1 1 0
0 0 0

[2,2] পারফর্ম করার পর, আমরা পাব

2 2 1
2 2 1
1 1 1

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • minR :=m, minC :=n

  • অপস ইন অপস অ্যারে

    • minR :=সর্বনিম্ন minR এবং op[0>

    • minC :=সর্বনিম্ন minC এবং op[1]

  • রিটার্ন minR * minC

উদাহরণ

আরো ভালোভাবে বোঝার জন্য নিচের বাস্তবায়নটি দেখি -

#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
   int maxCount(int m, int n, const vector<vector<int>>& ops) {
      int minR = m;
      int minC = n;
      for (const auto& op : ops){
         minR = min(minR, op[0]);
         minC = min(minC, op[1]);
      }
      return minR * minC;
   }
};
main(){
   Solution ob;
   vector<vector<int>> v = {{2,2},{3,3}};
   cout << (ob.maxCount(3,3,v));
}

ইনপুট

3,3,{{2,2},{3,3}}

আউটপুট

4

  1. C++ এ ক্ষুদ্রতম পরিসর II

  2. C++-এ অ্যারেতে পরিসরের গড়

  3. C++ এ একটি পরিসরে সেট বিট কপি করুন

  4. রেঞ্জ সমষ্টি প্রশ্ন - C++ এ অপরিবর্তনীয়